Python接收5个用户数字建列表,按奇偶分别加倍/乘三倍的实现问题
代码问题原因
- 遍历逻辑错误:你在遍历
num_list的同时调用append()往同一个列表追加内容,会让列表长度持续增长,循环永远不会终止,同时最终输出的列表会混杂原始输入值和计算后的值,不符合需求要求。 - 输出逻辑错误:需求仅要求输出每个数字计算后的结果,不需要修改原输入列表,也不需要将计算结果追加到原列表中。
修正后完整代码
以下代码保留了你原有的输入逻辑,同时修正了循环和输出部分:
num1 = int(input("Enter Number 1: ")) num2 = int(input("Enter Number 2: ")) num3 = int(input("Enter Number 3: ")) num4 = int(input("Enter Number 4: ")) num5 = int(input("Enter Number 5: ")) num_list = [] num_list.append(num1) num_list.append(num2) num_list.append(num3) num_list.append(num4) num_list.append(num5) # 新建独立列表存储计算结果,避免修改原输入列表 result_list = [] for i in num_list: if i % 2 == 0: calculate_val = i * 2 else: calculate_val = i * 3 # 逐个输出计算结果 print(calculate_val) result_list.append(calculate_val) # 如需统一输出所有计算结果可打开下方注释 # print(result_list)
简化版实现(可选)
如果需要简化输入部分的冗余代码,可以用循环批量接收输入:
num_list = [] for idx in range(5): input_num = int(input(f"Enter Number {idx+1}: ")) num_list.append(input_num) # 用列表推导式快速生成计算结果 result = [num*2 if num%2 == 0 else num*3 for num in num_list] # 逐个输出 for val in result: print(val) # 统一输出列表 # print(result)
内容的提问来源于stack exchange,提问作者Advik Sharma
相关产品推荐
相关产品推荐

