[英]How to fix TypeError: not all arguments converted during string formatting
I have a problem with my program that is supposed to sort even and odd numbers.我的程序有问题,应该对偶数和奇数进行排序。
The code:编码:
everything = []
print("Type all your numbers and then type stop")
while True:
nove = input()
if nove == "stop":
break
else:
everything.append(nove)
numbers = [s for s in everything if s.isdigit()]
print("All numbers:")
for number in numbers:
print(number)
print("Odd numbers:")
for number in numbers:
if number % 2 == 1:
print(number)
else:
continue
print("Even numbers:")
for number in numbers:
if number % 2 == 0:
print(number)
else:
continue
It returns this:它返回这个:
*Type all your numbers and then type stop
>68
>11
>stop All numbers: 68 11 Odd numbers: Traceback (most recent call last): File "tridicka.py", line 16, in <module>
if number % 2 == 1: TypeError: not all arguments converted during string formatting
------------------ (program exited with code: 1)*
Your inputs are string, you need to parse thel as int
您的输入是字符串,您需要将 l 解析为
int
numbers = [int(s) for s in everything if s.isdigit()]
Also this part is useless, as there is no other cde to run after这部分也没有用,因为没有其他 cde 可以运行
else:
continue
Just do做就是了
print("Odd numbers:")
for number in numbers:
if number % 2 == 1:
print(number)
print("Even numbers:")
for number in numbers:
if number % 2 == 0:
print(number)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.