| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1766 人关注过本帖
标题:这个代码有什么问题吗?为什么逻辑不通?
只看楼主 加入收藏
acd2012
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-8-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
这个代码有什么问题吗?为什么逻辑不通?
import random
a=random.randint(0,10) if a>2 else 100
print(a)

今天刚学了一个关于 if 结构的简洁表达式:
表达式1 if 条件 表达式2

以上代码是生成一个随机数 当这个数大于2的时候输出此数,否则输出100
但实际输出结果总是100,没有其他结果
图片附件: 游客没有浏览图片的权限,请 登录注册

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

而当把代码中a>2改成a>1时
输出的结果又全是随机数,无论刷新多少次都没有输出100
难道没有a小于等于1的时候吗?
自己给自己证懵了!求大神开导!
搜索更多相关主题的帖子: 表达式 代码 结果 if 输出 
2020-08-09 15:57
未了的情缘
Rank: 2
等 级:论坛游民
帖 子:8
专家分:25
注 册:2020-8-9
收藏
得分:10 
程序代码:
import random

s=random.randint(-100, 100)
if s>2:
    print(s)
else:
    print(100)
2020-08-09 19:11
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:216
帖 子:1509
专家分:9241
注 册:2010-3-16
收藏
得分:10 
a=random.randint(0,10) if (a>2) else 100
比较a>2的时候,a还没有定义初始化
2020-08-09 23:20
acd2012
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-8-9
收藏
得分:0 
太奇怪了
晚上再试这行代码不行了
图片附件: 游客没有浏览图片的权限,请 登录注册
2020-08-10 01:19
acd2012
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-8-9
收藏
得分:0 
回复 3楼 apull
好像有点明白好像有不明白
是不是说,a>2是不能先于a=random.randint(0,10)判断?
2020-08-10 11:06
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:216
帖 子:1509
专家分:9241
注 册:2010-3-16
收藏
得分:0 
a=random.randint(0,10) if a>2 else 100
这条语句可以理解为
if a>2 :
    a=random.randint(0,10)
else :
    a=100

2020-08-10 11:23
acd2012
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-8-9
收藏
得分:0 
回复 6楼 apull
明白了,如果写成这样就没问题了吧
import random
a=random.randint(0,10)
a=random.randint(0,10) if a>2 else 100
print(a)

不过奇怪的是昨天那行代码真能运行
今天早上就不行了
2020-08-10 12:26
快速回复:这个代码有什么问题吗?为什么逻辑不通?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019141 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved