Python 如何修复TypeError:并非所有参数都在字符串格式化期间转换

Python 如何修复TypeError:并非所有参数都在字符串格式化期间转换,python,python-3.7,Python,Python 3.7,我的程序有一个问题,该程序应该对偶数和奇数进行排序 守则: 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.isdi

我的程序有一个问题,该程序应该对偶数和奇数进行排序

守则:

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
它返回以下内容:

*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)*
*键入所有号码,然后键入stop
>68
>11
>停止所有号码:68 11个奇数号码:回溯(最后一次调用):文件“tridicka.py”,第16行,在
如果编号%2==1:TypeError:在字符串格式化期间未转换所有参数
------------------(程序已退出,代码为:1)*

您的输入是字符串,您需要将该字符串解析为
int

numbers = [int(s) for s in everything if s.isdigit()]

此外,这部分也是无用的,因为没有其他cde可以运行

else:
    continue
照办

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)

您应该将数字从字符串转换为int,例如,
numbers=[int(s)for s in everything if s.isdigit()]
@LosSkillos您可以标记一个答案,就好像它回答了您的问题一样。