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

Python中While循环内使用Try Except时无法正确跳出循环问题

问题分析

你的代码问题核心是break语句的缩进位置不符合预期逻辑:
当前break和try...except结构平级,属于while循环下的公共执行逻辑,也就是说无论本次循环的输入是否合法,只要执行完try或except的代码,就会立刻触发break跳出循环,完全达不到「输入错误就重新提示输入,直到三个值全部输入正确再退出」的预期效果。

按你现有代码的执行流程,只会出现两种结果:

  • 三个输入全为合法整数:try块执行完成后直接执行break,退出循环
  • 任意一个输入无法转为整数:触发异常打印提示后,还是会执行break,直接退出循环
修复方案

你只需要将break缩进,放到try代码块的最后一行即可:只有三个输入全部转换成功,才会执行break跳出循环;如果触发异常,只会执行except里的打印逻辑,不会走到break,循环会自动进入下一轮重新提示输入。

def marks():
    while True:
        try:
            x = int(input("Enter the marks 1 : "))
            y = int(input("Enter the marks 2 : "))
            z = int(input("Enter the marks 3 : "))
            break
        except ValueError:
            print("Please enter a integer")

内容的提问来源于stack exchange,提问作者Himasha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:00