编写循环累加用户输入十个数的程序及排查NoneType比较错误
问题解决:修复最大值查找代码 + 实现累加程序
一、修复最大值查找代码的错误
错误原因分析
- 类型错误根源:
print()函数的返回值是None,你执行List.append(print(int(input("Enter only integer value::"))))时,实际是把None添加到了列表中,最终列表所有元素都是None,后续执行a < List[x]时,就是None与None比较,自然触发TypeError: '<' not supported between instances of 'NoneType' and 'NoneType'。 - 逻辑错误:原代码的最大值判断逻辑颠倒,且没有正确更新最大值变量,会导致输出结果错误。
修正后的代码
# Task 4: 循环获取用户输入的十个数并找出最大值 num_list = [] for i in range(1, 11): # 先获取输入并转成整数,直接添加到列表,不要套print num = int(input("Enter only integer value::")) num_list.append(num) # 初始化最大值为列表第一个元素 max_num = num_list[0] for num in num_list: # 如果当前数比当前最大值大,更新最大值 if num > max_num: max_num = num # 循环结束后打印最终最大值 print(max_num, "is the largest number")
关键修正点
- 移除
print()对输入值的包裹,直接将整数存入列表 - 修正最大值判断逻辑:遍历列表时,用当前元素和最大值比较,更新最大值
- 循环结束后统一打印结果,避免中途错误输出
二、实现循环累加十个数的程序
直接通过循环获取用户输入的十个数,同时累加求和,代码如下:
# 循环累加用户输入的十个数 total = 0 for i in range(1, 11): num = int(input(f"Enter number {i}: ")) total += num print("总和为:", total)
代码说明
- 初始化累加变量
total为0 - 循环10次,每次获取用户输入的整数并加到
total中 - 循环结束后输出最终累加结果
内容的提问来源于stack exchange,提问作者Muhammad Anas
相关产品推荐
相关产品推荐

