Python已在顶部声明number,为何while循环中还要写number=int(input())
问题原因解释
为什么删除该行会触发无限循环
Python的while循环运行逻辑是:每次执行循环体内容前,都会先校验while后接的条件表达式是否为真,只有条件成立才会执行内部代码。
你在循环外已经给number赋值为第一个输入的正整数,如果你删除循环内部的number=int(input())语句,number的数值全程不会发生任何变更,始终是初始的大于0的正整数,那while (number>0)的判断结果永远为真,循环会无限重复执行,永远不会终止。
这行代码的实际作用
循环内部的number=int(input())承担两个核心功能:
- 读取下一个用户输入的数值,更新
number变量的值,用于下一轮循环的最大值、最小值比较逻辑 - 作为循环的终止开关:当用户输入小于等于0的数值时,
number>0的条件不成立,循环就会自动终止,最终输出统计到的最大、最小值
正常运行示例
假设用户依次输入5、3、8、-1,程序运行流程如下:
- 循环外读取第一个输入
5,min_value、max_value、number初始值均为5 - 校验
5>0成立,进入循环,比较后最大最小值仍为5,执行number=int(input())读取到3 - 校验
3>0成立,进入循环,比较后min_value更新为3,执行number=int(input())读取到8 - 校验
8>0成立,进入循环,比较后max_value更新为8,执行number=int(input())读取到-1 - 校验
-1>0不成立,退出循环,输出3 and 8
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

