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

Python实现输入n个数字组成元组传入函数统计奇偶个数的方法

手动输入数字统计奇偶数量的实现方案

你可以在原有统计逻辑的基础上,新增用户输入采集、格式转换的模块即可完成需求,完整可运行代码如下:

def CountOfEvenOddOddNumbers(evodTuple):
    tEvenCount = tOddCount = 0
    for oetup in evodTuple:
        if(oetup % 2 == 0):
            tEvenCount = tEvenCount + 1
        else:
            tOddCount = tOddCount + 1
    return tEvenCount, tOddCount

# 新增输入采集逻辑
while True:
    input_str = input("请输入多个数字,用空格分隔:")
    # 拆分输入字符串为单个元素
    input_list = input_str.strip().split()
    # 校验是否有输入内容
    if not input_list:
        print("输入不能为空,请重新输入")
        continue
    # 转换为数字并校验
    try:
        evodTuple = tuple(int(item) for item in input_list)
        break
    except ValueError:
        print("输入包含非数字内容,请重新输入")

print("输入的数字元组 = ", evodTuple)
evenCount, oddCount = CountOfEvenOddOddNumbers(evodTuple)
print("元组中偶数的数量 = ", evenCount)
print("元组中奇数的数量 = ", oddCount)

核心改动说明

  • 原有奇偶统计函数完全保留,无需修改(注:原函数名CountOfEvenOddOddNumbers存在重复的Odd笔误,你可以根据需要修改为更规范的CountOfEvenOddNumbers)
  • 新增循环输入逻辑,避免单次输入错误直接导致程序崩溃
  • 输入的字符串会先按空格拆分,再统一转换为int类型后转为元组,符合原有函数的传参要求

如果你需要先指定输入数字的个数n,再逐个输入,可以使用以下输入逻辑替换上面的输入部分:

while True:
    try:
        n = int(input("请输入要输入的数字个数:"))
        if n <= 0:
            print("个数必须大于0,请重新输入")
            continue
        break
    except ValueError:
        print("请输入合法的数字")

num_list = []
for i in range(n):
    while True:
        try:
            num = int(input(f"请输入第{i+1}个数字:"))
            num_list.append(num)
            break
        except ValueError:
            print("请输入合法的数字")
evodTuple = tuple(num_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:18:03