这段代码有什么问题吗,为什么输出结果解释不通?

tkjkk 2020-08-09 04:10:20
import random
a=random.randint(0,10) if a>2 else 100
print(a)

以上代码构思是:生成一个随机数 当这个数大于2的时候输出此数,否则输出100
但实际输出结果总是100,没有其他结果


无论输出多少次,a的值都是100,难道a没有小于或等于2的时候吗?好奇怪

而当把代码中a>2改成a>1时
输出的结果又全是随机数,无论刷新多少次都没有输出100
难道没有a小于等于1的时候吗?
这段代码哪里有问题吗,为什么输出结果解释不通?
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39972887 2020-08-10
  • 打赏
  • 举报
回复
引用 4 楼 韩阳小程序开发制作 的回复:
[quote=引用 2 楼 lkj2016 的回复:]

#如果b的值大于0,将b直接赋值给a,否则将a设置为0
a=b if b>0 else 0
a=a>2 ?random.randint(0,10) : 100,a都没赋值直接比较吗,这没报变量不存在的错误?
还真没报错,我昨天一直运行这行代码看了一下午 结果今天上来就报错了 一脸懵![/quote]
引用 4 楼 韩阳小程序开发制作 的回复:
[quote=引用 2 楼 lkj2016 的回复:]

#如果b的值大于0,将b直接赋值给a,否则将a设置为0
a=b if b>0 else 0
a=a>2 ?random.randint(0,10) : 100,a都没赋值直接比较吗,这没报变量不存在的错误?
还真没报错,我昨天一直运行这行代码看了一下午 结果今天上来就报错了 一脸懵![/quote] 肯定报错啊。估计是没清内存重新运行的缘故。
qq_39972887 2020-08-10
  • 打赏
  • 举报
回复
import random a=random.randint(0,10) if random.randint(0,10)>2 else 100 print(a)
庸了个白 2020-08-10
  • 打赏
  • 举报
回复
短路赋值先判断条件,再进行赋值,这里先判断 if a>2 else 100,这里的 a 都还没有赋值,直接进行了判断,肯定是报错的。
tkjkk 2020-08-10
  • 打赏
  • 举报
回复
引用 2 楼 lkj2016 的回复:

#如果b的值大于0,将b直接赋值给a,否则将a设置为0
a=b if b>0 else 0
a=a>2 ?random.randint(0,10) : 100,a都没赋值直接比较吗,这没报变量不存在的错误?
还真没报错,我昨天一直运行这行代码看了一下午 结果今天上来就报错了 一脸懵!
Temperament boy 2020-08-10
  • 打赏
  • 举报
回复
import random
a=random.randint(0,10)
print(a)if a>2 else 100
AutumnSea03 2020-08-10
  • 打赏
  • 举报
回复
import random
b=random.randint(0,10)
a = b if b>2 else 100
print(a)
chuifengde 2020-08-09
  • 打赏
  • 举报
回复
这段代码翻译一下其意思是:
import random
if a >2 :
    a=random.randint(0,10) 
else:
    a= 100
print(a)
按道理是报错,你的能运行?
lkj2016 2020-08-09
  • 打赏
  • 举报
回复

#如果b的值大于0,将b直接赋值给a,否则将a设置为0
a=b if b>0 else 0
a=a>2 ?random.randint(0,10) : 100,a都没赋值直接比较吗,这没报变量不存在的错误?
tianfang 2020-08-09
  • 打赏
  • 举报
回复
else 100 -》 else a=100

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧