You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:48:00