所以我不明白为什么averageEven和averageOdd不能工作。任何帮助都会很好。这只有在所有的情况下才能起作用。所以2222222是100%偶数,4514324是0%偶数和0%奇数。真的很奇怪。
valid = int(0)
odd = int(0)
even = int(0)
while (valid != 1):
number = input('Enter a number(between 6-9 digits long): ')
if (len(number) > 5 and len(number) < 10):
valid = 1
else:
print('invalid input.')
for i in range(len(number)):
currentNum = int(number[i])
if(currentNum%2==0):
print(str(currentNum) +' is even')
even = even + 1
else:
print(str(currentNum) +' is odd')
odd = odd + 1
averageEven = float((even//len(number))*100)
averageOdd = float((odd//len(number))*100)
print ('Percent of even numbers is: ' + str(averageEven) + '%')
print ('Percent of odd numbers is: ' + str(averageOdd) + '%')发布于 2014-04-08 05:32:08
这是因为你得到的是“泛泛商号”。而不是//,您应该使用/。
要详细说明,数字的地板是数字四舍五入到最接近的整数。在小数小于1的情况下,这只是0。1.0的楼层仅为1。我敢打赌,您的代码也可以检测到一个数字是否是100%的奇数。
https://stackoverflow.com/questions/22928236
复制相似问题