Python循环使用问题:数学答题校验场景中break语句失效如何解决
Python循环答题功能修复
故障原因
你的代码运行异常是因为缩进错误:Python以缩进划分代码块,你当前的答案判断逻辑、break语句、答错提示代码均未缩进至while True循环的代码块范围内,导致break没有对应的循环归属,直接触发语法错误。
另外不建议使用eval处理用户输入,存在恶意代码执行风险,替换为int()做整数类型转换更安全。
修正后代码
import random title = "数学小测验" print(title) num1 = random.randint(0, 7) num2 = random.randint(0, 7) print(f"请问 {num1} * {num2} = ", end="") while True: # 替换eval为int,避免安全问题 answer = int(input("")) if num1 * num2 == answer: print("回答正确!") break print("答错了,再试一次!")
改动说明
- 所有答题相关逻辑全部缩进进入
while True循环块,保证break可以正常终止循环 - 替换
eval(input())为int(input()),规避用户恶意输入导致的安全问题 - 界面提示翻译为中文,符合使用习惯
内容的提问来源于stack exchange,提问作者ahmad salmani
相关产品推荐
相关产品推荐

