You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python异常处理程序中,未得到预期结果时最多3次尝试后退出程序?

实现带重试次数限制的Python输入验证

嘿,这个需求很常见,我们只需要给代码加个重试计数器就能搞定最多3次尝试的限制。下面是修改后的完整代码,我会顺便拆解下关键逻辑:

max_attempts = 3
attempts = 0

while attempts < max_attempts:
    attempts += 1
    try:
        x = int(input("请输入一个数字:"))
        print(f"成功输入数字:{x}")
        break
    except ValueError:
        remaining = max_attempts - attempts
        if remaining > 0:
            print(f"您输入了非数值,请输入数值类型。您还有{remaining}次尝试机会。")
        else:
            print("尝试次数已耗尽,程序退出。")
    except KeyboardInterrupt:
        print("\n您按下了Ctrl+C,程序退出。")
        exit(1)

关键逻辑说明:

  • 先定义max_attempts = 3设置最大允许尝试次数,attempts用来记录已经尝试过的次数
  • 循环条件改成attempts < max_attempts,次数耗尽后自动终止循环
  • 每次进入循环先执行attempts += 1,更新当前尝试次数
  • ValueError的异常处理里,计算剩余尝试次数,给用户明确的提示;如果次数耗尽,直接告知用户程序退出
  • 保留了原有的KeyboardInterrupt处理,用户按Ctrl+C可以直接退出程序

这样修改后,既保留了原有的异常处理逻辑,又实现了最多3次尝试的限制,体验也更友好~

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

火山引擎 最新活动