Python遍历range(20,26)的For循环仅输出首个数字问题求助
问题原因
你的代码存在缩进错误和多处逻辑bug:
- 你错误地将
input交互、outro询问逻辑都写在了for index in range(20, 26)的循环体内部,循环每打印一个数字就会卡在input语句处等待用户输入,你看到打印20后无后续输出,本质是程序处于阻塞等待输入的状态,并非循环提前终止。 - 代码末尾
if outro == "yes":没有对应的闭合逻辑,运行到此处会直接触发语法报错。 - 隐含的其他逻辑问题:
if number == "four" or 4:写法错误,or 4永远返回真,不管用户输入任何内容都会判定为正确- 猜数字逻辑里
guess_number2赋值为拼写错误的nighteen,但后续判断用的是正确拼写nineteen,二者永远无法匹配 - 两次定义的
num函数都没有处理两数相等的边界情况,输入相等数值时会返回None
修复方案
将不属于循环的交互逻辑移出for循环体,修正语法和逻辑错误即可,核心循环部分修改后如下:
print("index time") print("for index in range 20-25") for index in range(20, 26): print(index) # 所有循环执行完成后再执行交互逻辑 input("现在所有数字都已经打印完成") outro = input("do you want to hear my outro? yes or no?") if outro == "yes": # 此处补全你的outro逻辑即可 pass
完整代码还需要同步修改前面提到的其他问题:比如把条件判断改为if number == "four" or number == "4":,修正guess_number2的拼写为nineteen等。
内容的提问来源于stack exchange,提问作者Khai Tschuemperlin
相关产品推荐
相关产品推荐

