如何解决为什么变量计数没有为每个对应的数字增加1?
def countTemps(temperature):
该函数以“温度”列表作为参数,它应该找到并返回正数,负数和零数。
temperature=(0,1,5,-3,4,15,6,-2,8,-5,10,-4,7)
posCount,negCount,zeroCount = 0,0
integers = 0
对于每个温度,相应变量的计数应增加1。
for integers in temperature:
if integers < 0:
negCount += 1
return temperature
elif integers > 0:
posCount += 1
return temperature
else:
return temperature
zeroCount += 1
return temperature
print("Number of Positive: ",posCount)
print("Number of Negative: ",negCount)
print("Number of Zeros: ",zeroCount)
但是,为什么它们的输出为零而不是正确的计数?
解决方法
函数countTemps
在到达return
语句后立即退出。就您而言,这意味着循环将增加zeroCount
一次然后停止。不过,在函数内部看不到对函数内部变量的更改,因此,zeroCount
在函数终止后不会为1。
如果删除所有return
语句,并确保在循环后 返回所有计数,则可以在函数外部捕获这些计数。
def countTemps(temperature):
....
for integers in temperature:
....
return (posCount,negCount,zeroCount)
或者,如果您不需要其他地方的计数,则可以将print
语句移动到函数内部但在循环之后,并避免使用return
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。