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

如何在代码中加入循环,持续校验直至获取符合规则的用户输入

解决方案

核心用无限循环配合条件判断实现持续询问,输入符合要求时终止循环即可。另外你原代码还存在几个逻辑问题需要同步修正:

  • 范围判断错用or,会导致所有数字都能通过校验,需改为and同时满足两个范围条件
  • 不要用eval()处理用户输入,存在安全风险,换成int()做类型转换即可
  • 缺少非数字输入的异常捕获,用户输入非数字内容时会直接崩溃
完整可运行代码
print('欢迎来到我的石头剪刀布游戏!')
print()

# 无限循环获取合规的游戏局数
while True:
    try:
        user_action = int(input('请输入游戏局数,要求为3到11之间的奇数:'))
    except ValueError:
        print('输入无效,请输入数字!')
        continue
    # 同时校验范围和奇偶性
    if 3 <= user_action <= 11 and user_action % 2 == 1:
        # 校验通过跳出循环
        break
    # 校验不通过提示重试,自动进入下一轮循环
    print('抱歉,输入不符合要求,请重新输入!')

# 后续游戏逻辑
print("\n\n第1局 \n 请输入(R)石头、(P)布、(S)剪刀")
逻辑说明
  • while True会启动无限循环,没有触发break语句的情况下会一直重复执行循环内的代码
  • try...except用来捕获用户输入非数字的异常,避免程序直接崩溃
  • 每次输入都会同步校验范围和奇偶性,校验不通过就会提示重试,自动回到输入步骤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:06:01