Как исправить TypeError: не все аргументы конвертируются при форматировании строки - PullRequest
0 голосов
/ 20 марта 2020

У меня проблема с моей программой, которая должна сортировать четные и нечетные числа.

Код:

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)*

1 Ответ

0 голосов
/ 20 марта 2020

Ваши входные данные являются строковыми, вам нужно проанализировать их как int

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

Также эта часть бесполезна, так как нет другого кода для запуска после

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...