Midcpuzqrw 2022-04-27 12:25 采纳率: 100%
浏览 37
已结题

python 语句判断问题

while True:
try:
num=input()
n=int(num)
break
except:
print('illegal input')

if str(3) or str(4) in str(n):
print('true')
else:
print('false')

#为什么一直输出 true啊?

  • 写回答

4条回答 默认 最新

  • A Python 萌新花花 2022-04-27 12:38
    关注

    你要知道一件事,就是or和and 的优先级很低,就是str(3) or str(4) in str(n)里面,实际 相当于str(3) or (str(4) in str(n))
    就是str(4) in n和str(3)中选一个,因为str(3)的话会造成类似True的效果,就是只要你输入的是数字,就会输出true
    应该改成if “3” in str(n) or "4" in str(n):

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月5日
  • 已采纳回答 4月27日
  • 创建了问题 4月27日

悬赏问题

  • ¥15 请提供一个符合要求的网页链接。
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码