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

Python如何实现仅允许用户输入0和1两个有效数值的限制?

Python限制用户仅输入0/1的实现方案

核心思路

封装通用的输入校验函数,循环拦截非法输入(非数字、数值不在0/1范围内的情况),直到用户输入符合要求才返回有效值,避免重复编写校验代码。

具体实现代码

def get_01_input(prompt: str) -> int:
    while True:
        user_input = input(prompt).strip()
        # 先校验是否为纯数字
        if not user_input.isdigit():
            print("输入无效,请输入数字0或1")
            continue
        # 转整数后校验取值范围
        num = int(user_input)
        if num in (0, 1):
            return num
        print("输入无效,请输入0或1")

# 调用函数获取合法输入(补全原代码缺失的num4输入)
num1 = get_01_input("是否有斑点?是请输1,否请输0:")
num2 = get_01_input("是否有大鼻子?是请输1,否请输0:")
num3 = get_01_input("是否戴头巾?是请输1,否请输0:")
num4 = get_01_input("请输入第四个判断项的取值,是请输1,否请输0:")

if (num1 and num2 and num3 and num4):
    print("Becky")
elif (num1 or num2 and num3 and num4):
    print("Tara")
elif (num3 and num4):
    print("Keri")
else:
    print("Laura")

逻辑说明

  • 自动过滤用户输入前后的空格,避免误输入空格导致校验失败
  • 优先判断输入是否为纯数字,避免调用int()转换时抛出异常导致程序崩溃
  • 仅当输入为0或1时才结束输入流程,否则持续提示用户重新输入
  • 原参考代码中缺失num4变量的定义,已补充对应的输入逻辑,可根据实际需求修改num4的提示文字

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:45:03