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
相关产品推荐
相关产品推荐

