Python循环不接收输入且输出None,新手求排查代码错误
代码错误点与修复方案
核心错误列表
- input内嵌套print导致输出None:
print()执行后返回值为None,被input()当成提示文本输出,所以会出现多余的None,直接把提示内容写到input的参数里即可。 - 未提前初始化array列表:Python中列表不能直接通过下标赋值,必须先声明初始化,否则会抛出索引异常。
- 未对input返回值做类型转换:
input()默认返回字符串类型,直接和整数0对比永远不成立,后续求和时字符串和整数相加也会报错,需要转成int类型。 - 计数变量名不统一:你预先定义的零值计数变量是
no_of_zeros,后续自增时用了未声明的is_zero,会抛出变量未定义错误。 - 变量名冲突:使用
sum作为变量名会覆盖Python内置的sum()求和函数,属于不规范写法。
修复后可正常运行的代码
no_of_zeros = 0 array = [0] * 5 # 提前初始化长度为5的列表 for i in range(5): # 移除嵌套的print,输入值转整数 array[i] = int(input(f"Enter element no: {i+1}")) if array[i] == 0: array[i] = 1 no_of_zeros += 1 # 统一计数变量名 total = 0 # 避免和内置sum函数重名 for j in range(5): total += array[j] print(total) print(no_of_zeros)
内容的提问来源于stack exchange,提问作者muntasin_22
相关产品推荐
相关产品推荐

