新手,关于Whlie True 和Whlie active 的问题

qq_42251609 2018-05-21 01:49:09

有python 运行时第一个就解决了 age == 'quit'的问题用到BREAK
而用active时age == 'quit' 无法解决 请问有什么解决方法么?
...全文
882 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42590648 2018-07-02
  • 打赏
  • 举报
回复
if age == 'quit':
active == False
else:
if .....
elif....
else...
weixin_42590648 2018-07-02
  • 打赏
  • 举报
回复
三楼说的很对啊 你可以这样写
if age == 'quit'
active == False
else:
if...
elif....
else...
欢乐的小猪 2018-07-02
  • 打赏
  • 举报
回复
break跳出整个循环
Marhesvara 2018-06-26
  • 打赏
  • 举报
回复
有两个主要的问题
1.独立的if语句(缩进空格相同),意味着每个if条件,python都会进行判断,而if....elif 此类结构是只要其中一个条件满足,不判断其他的条件;if....else结构则是'非此即彼',如果if条件不满足,那么else则包括了其他所有的情况,在集合论中,类似于一个集合的补集

你的代码中,当输入值为quit值时,第一个if为true,active变成false.
但是第二个if判断仍然会执行,也就是说quit在和数字进行比较,引发了错误.

2.break为什么可行,因为这个语句的机制是直接中断循环,就是说它直接忽视了循环体之后的所有代码,没有执行会发生异常的代码

在你的代码逻辑上进行修正的话,可以在比较数字大小的前面加一条"是否为数字"的判断:


......
if age == 'quit':
active = False
if age.isdigit():
if ........


两个独立的if分别去解决输入值是str和int的情况,当染还有其他的方法
建议 复习一下python的条件判断.
de_su 2018-05-22
  • 打赏
  • 举报
回复
我想你遇到的问题是,输入quit时报错了吧。原因是下面的if判断字符串不能和数字比较。 我建议你吧下面的 if 整个放在最上面if的else里面。就不会出现错误,顺利运行完毕
de_su 2018-05-22
  • 打赏
  • 举报
回复
没有任何问题啊,正常退出

37,719

社区成员

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

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