Проверьте, не являются ли числа в строке через запятую нечетными или четными - PullRequest
1 голос
/ 19 марта 2020

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

Я должен сделать это с for l oop, код, который я имею, это:

getallen = '12, 3, 7, 25, 771, 45, 6, 98, 55, 546'

for number in getallen:
    if number %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

Вывод должен быть примерно таким:

12 is even
3 is odd
7 is odd etc etc.

Ответы [ 3 ]

1 голос
/ 19 марта 2020

Мэтт прав, что вы перебираете строку, а не массив, но после разбиения вам также необходимо преобразовать каждое значение в число. Есть несколько способов сделать это:

Вы можете использовать map для преобразования каждого элемента массива в число, используя int:

for number in map(int, getallen.split(',')):
    if number %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

Или вы можете преобразовать каждое число как вы его проверяете:

for number in getallen.split(','):
    if int(number) %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')

Оба из них приведут к:

12 is even
3 is odd
7 is odd
25 is odd
771 is odd
45 is odd
6 is even
98 is even
55 is odd
546 is even
1 голос
/ 19 марта 2020

Ваш код не работает, потому что getallen это строка, а не массив. Вам нужно сначала преобразовать его в массив с помощью getallen = getallen.split(',')

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

Ваша строка является литералом кортежа, поэтому вы можете просто использовать ast.literal_eval, чтобы безопасно преобразовать ее в кортеж целых чисел. Это может быть непосредственно использовано в вашем for l oop.

import ast
getallen = '12, 3, 7, 25, 771, 45, 6, 98, 55, 546'

for number in ast.literal_eval(getallen):
    if number %2 == 0:
        print(f'{int(number)} is even')
    else:
        print(f'{int(number)} is odd')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...