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

Python如何禁止多个输入项录入重复数字

解决方案

你需要在输入环节增加重复校验逻辑,同时注意原代码中input()返回值默认是字符串类型,直接传入比较函数会出现排序错误(比如字符串"10"会被判定为小于"2"),需要先转为整数类型。完整修改后的代码如下:

def middle(num1, num2, num3):
    return min(max(num1,num2), max(num2,num3), max(num1,num3))

entered_nums = []
# 循环获取3个不重复的整数
for idx in range(3):
    while True:
        # 处理非数字输入的异常
        try:
            current = int(input(f"输入第{idx+1}个数字: "))
        except ValueError:
            print("请输入有效整数,请重新输入")
            continue
        # 重复校验
        if current in entered_nums:
            print("该数字已输入过,请输入不同的数字")
        else:
            entered_nums.append(current)
            break

num1, num2, num3 = entered_nums
print("The center number is: ")
print(middle(num1, num2, num3))

逻辑说明

  • 用entered_nums列表存储已经录入的有效数字,每次新输入后先校验是否已存在,存在则循环要求重新输入,保证三个数字完全不重复
  • 额外增加了非数字输入的异常捕获,避免用户输入字母、特殊符号时程序报错
  • 录入完成后将列表拆包赋值给三个变量,无需改动原有middle函数的计算逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:39:05