Я пытался написать программу на Python 3.6.5 для Windows 10, которая будет принимать целые числа, а затем распечатывать нечетные.
Это мой код:
def listInput():
aList = list()
while True:
num = input("Please input a number:")
if num == 'done':
break
num = int(num)
aList.append(num)
return aList
def isOddNumber(y):
if y%2 == 0:
return False
else:
return True
def filterOddInList(a):
i = len(a)
while i >= 0:
item = a[(i-1)]
odd = filterOddInList(item)
if odd == False:
x.pop()
def main():
a = listInput()
print(a)
a = filterOddInList(a)
print(a)
main()
Вот что должно было случиться:
Please input a number:1
Please input a number:2
Please input a number:3
Please input a number:4
Please input a number:5
Please input a number:done
[1, 2, 3, 4, 5]
[1, 3, 5]
Вот что на самом деле произошло:
Please input a number:1
Please input a number:2
Please input a number:3
Please input a number:4
Please input a number:5
Please input a number:done
[1, 2, 3, 4, 5]
Traceback (most recent call last):
File "C:\Users\Jerry Cui\Documents\New folder\Homework\oddonly.py", line 30, in <module>
main()
File "C:\Users\Jerry Cui\Documents\New folder\Homework\oddonly.py", line 27, in main
a = filterOddInList(a)
File "C:\Users\Jerry Cui\Documents\New folder\Homework\oddonly.py", line 20, in filterOddInList
odd = filterOddInList(item)
File "C:\Users\Jerry Cui\Documents\New folder\Homework\oddonly.py", line 17, in filterOddInList
i = len(a)
TypeError: object of type 'int' has no len()
Может кто-нибудь сказать мне, почему произошла эта ошибка, и какой должен быть правильный код?