Python 2.7输入10个数统计正负零数量程序结果异常问题
解决Python 2.7数字统计计数错误问题
嘿,我来帮你搞定这个统计数字的问题!你的代码里有几个关键问题导致统计结果始终不对,我给你一一拆解并修正:
原代码的核心问题
- 循环语法错误:
for i in range(10)后面没有加冒号:,这是Python的基础语法要求,没加的话程序直接报错跑不起来。 - 计数变量初始化位置错误:你把负数、正数、零的计数变量
n、p、z放在了循环内部,每次循环都会把这三个变量重置为0,之前统计的结果直接被清空,自然最后统计不对。 - 输入未转换为整数:Python 2.7中的
input()函数返回的是字符串类型,直接拿字符串和数字(比如0)比较会出现逻辑错误,必须把输入转换成整数类型才能正确判断正负。 - 冗余且冲突的变量:开头定义的
i = []完全没用,而且后面循环又用i作为循环变量和输入存储变量,会造成变量名冲突,直接删掉就行。
修正后的完整代码
# 初始化计数变量,放在循环外面 negative_count = 0 positive_count = 0 zero_count = 0 for _ in range(10): # 获取输入并转换为整数 num = int(input('Enter Next Number: ')) # 判断数字类型并计数 if num > 0: positive_count += 1 elif num < 0: negative_count += 1 else: zero_count += 1 # 输出统计结果 print "The number of negative numbers is", negative_count print "The number of positive numbers is", positive_count print "The number of zeros is", zero_count
代码说明
- 把计数变量移到循环外,确保每次循环都是在之前的计数基础上累加。
- 用
int()把输入的字符串转换成整数,保证数值比较的正确性。 - 把循环变量改成
_(表示这个变量我们不需要用到具体值),避免和输入变量冲突,同时变量名改成更清晰的negative_count、positive_count、zero_count,可读性更强。 - 补全了循环的冒号,修正了语法错误。
内容的提问来源于stack exchange,提问作者Help
相关产品推荐
相关产品推荐

