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

如何在Python中当用户输入无效时重复对应问题?

解决方法

要实现输入无效时重复显示对应问题,你可以给每个问题套一个while循环,直到用户输入有效的数字为止。另外,原代码里直接给循环变量赋值没法留存结果,建议用字典存储所有收集到的数值,方便后续脚本调用。

修改后的代码如下:

# 问题列表
questions = [
    '请输入你的年度税前总薪资:',
    '请输入工资单上显示的年度奖金或佣金金额,若无则输入0:',
    '请输入工资单上显示的年度实物福利金额,若无则输入0:',
    '请输入你的年度总税收抵免额:',
    '请输入你的年度养老金总缴款额,若无则输入0:',
    '你是否有其他不可抵扣税的收入?(比如假期购买计划等)若无则输入0:'
]
# 对应变量名(调整为符合Python命名规范的格式)
variable_names = ['salary', 'bonus', 'bik', 'tax_credits', 'pension_contributions', 'other_non_tax_deductibles']
# 用字典存储收集到的用户输入
user_inputs = {}

for question, var_name in zip(questions, variable_names):
    while True:
        try:
            # 获取输入并转为浮点数
            value = float(input(question))
            # 将有效输入存入字典
            user_inputs[var_name] = value
            print(f"已记录:{value}")
            # 输入有效,跳出当前问题的循环,进入下一个问题
            break
        except ValueError:
            print("请输入有效的数字!")

# 后续脚本可通过字典调用这些值,示例:
# print(f"你的税前薪资为:{user_inputs['salary']}")

关键调整说明:

  • 新增while True循环,每个问题会持续重复询问,直到用户输入符合要求的数字。
  • 使用字典user_inputs存储结果,替代原代码的局部变量赋值,确保数据能被后续流程调用。
  • 将原英文问题和变量名翻译成中文,同时调整变量名符合Python下划线命名规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:34:57