Python编写税表时实现负收入输入循环重输的问题求助
修复方案
你写的代码有3个核心问题,跑不通也实现不了循环校验的效果:
- 缺外层循环结构,
break只能在while/for循环里用,单独写会直接抛语法错误 - 判断条件写法错误,Python里判断数值小于0直接写
if GrossIncome < 0:就行,你写的GrossIncome == <0:是无效语法 - 输入读取只在最开头执行了一次,就算判断出值不对,也不会重新触发输入请求让用户重填
可直接运行的代码
while True: GrossIncome = float(input("Enter your gross income: ")) if GrossIncome < 0: print("sorry, could you please repeat that?") else: break # 后续税务计算逻辑写在循环外即可,此时GrossIncome一定是>=0的合法值 print(GrossIncome)
逻辑说明
- 用
while True做无限循环,输入不合法就一直停在输入步骤,不会往下走计算逻辑 - 把输入读取放到循环内部,每次判定输入为负就打印提示,回到输入步骤重新取值
- 只有当输入值>=0时才会触发
break跳出循环,拿到合法的总收入值继续后续表单计算
后续如果要兼容用户输入非数字内容(比如输字母、特殊符号导致float转换报错)的场景,可以在循环里加一层try/except做异常捕获,新手阶段先把正数值校验的核心逻辑跑通就行。
内容的提问来源于stack exchange,提问作者Samuel Menicheli
相关产品推荐
相关产品推荐

