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

如何实现Python程序拒绝接收指定列表中的数字输入?

解决输入验证问题:拒绝接收指定列表中的数字

嘿,我来帮你搞定这个需求!首先得指出你原代码里的一个小逻辑漏洞——你写的if int(FirstNumber or SecondNumber) <= 17没法正确判断两个输入是否都符合要求,因为or在这里会返回第一个非零的数值,不是同时检查两个数。比如如果第一个数合规但第二个数超了17,代码还是会直接打印和,这显然不是你想要的效果。

接下来咱们直接重构代码,实现拒绝接收listN里的偶数,同时确保输入是小于17的奇数,还能处理用户输入非整数的情况,让程序更健壮:

# 定义禁止输入的偶数列表
listN = [0, 2, 4, 6, 8, 10, 12, 14, 16]

def get_valid_number(prompt):
    """循环获取符合要求的输入:小于17的奇数(不在listN中)"""
    while True:
        try:
            # 尝试将输入转为整数
            num = int(input(prompt))
            # 检查是否在禁止列表里
            if num in listN:
                print("抱歉,不能输入偶数,请重新输入!")
            # 检查是否小于17
            elif num >= 17:
                print("抱歉,数字必须小于17,请重新输入!")
            # 符合要求就返回这个数字
            else:
                return num
        except ValueError:
            # 处理用户输入非整数的情况,避免程序崩溃
            print("请输入有效的整数哦!")

# 获取两个符合要求的数字
FirstNumber = get_valid_number('Input first odd number smaller than 17: ')
SecondNumber = get_valid_number('Input second odd number smaller than 17: ')

# 计算并打印和
SumOfBoth = FirstNumber + SecondNumber
print(f"两个数的和是:{SumOfBoth}")

代码细节说明:

  • 用get_valid_number函数封装输入验证逻辑,通过while True循环持续要求用户输入,直到输入完全符合规则。
  • 加入try-except捕获非整数输入的异常,避免程序因为用户误输入字母、符号直接崩溃。
  • 明确检查两个核心条件:输入不在listN中(即不是禁止的偶数)、输入小于17,确保每个输入都严格合规。

这样修改后,用户只要输入不合规的内容,程序就会给出明确提示并要求重新输入,完美满足你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 19:52:33