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

