я хочу получить от пользователей информацию в виде списка, но получаю сообщение об ошибке - PullRequest
0 голосов
/ 09 сентября 2018
lst = int( input("Enter list values : "))

def count(lst):
    even = 0
    odd = 0

        for i in lst:


                if i%2 ==0:
                    even+=1
                else:
                    odd+=1

        return even,odd
print(even,odd)



even,odd = count(lst)

print("Even : () Odd : () :".format(even,odd))

Ответы [ 3 ]

0 голосов
/ 09 сентября 2018
    lst = input("Enter list values : ")

    def count(lst):
        even = 0
        odd = 0
        for i in lst:
            if i%2 ==0:
                even+=1
            else:
                odd+=1
        return even,odd

    even,odd = count([int(val) for val in lst.split(',')])
    print("Even : {even} Odd : {odd} ".format(even=even,odd=odd))
0 голосов
/ 09 сентября 2018
lst = input("Enter list values : ").split()
lst_to_int = [int(x) for x in lst]
even = 0
odd = 0
for i in lst_to_int:
    if i%2 ==0:
       even+=1
    else:
       odd+=1
print(even, odd)
print("Even : ("+str(even)+") Odd : ("+str(odd)+")")

Я решил просто свой код, чтобы было легче читать.Сначала возьмите в списке входные данные как str, а затем преобразуйте их в int путем понимания списка.После этого переберите lst_to_int и посчитайте количество четных и нечетных чисел.Затем распечатайте его.

Надеюсь, это поможет:)

РЕДАКТИРОВАТЬ: Запрошено из комментариев ОП, чтобы также ответить с помощью функции.Вот код:

def count(even, odd, lst_to_int):
    for i in lst_to_int:
        if i%2 ==0:
           even+=1 
        else:
           odd+=1
    print(even, odd)
    print("Even : ("+str(even)+") Odd : ("+str(odd)+")")
even = 0
odd = 0 
lst = input("Enter list values : ").split()
lst_to_int = [int(x) for x in lst]
result = count(even, odd, lst_to_int)
0 голосов
/ 09 сентября 2018

input оценивает указанную строку, заданную в качестве ввода. Таким образом, указанная строка должна быть допустимым выражением Python.

Чтобы получить список, вы можете явно указать входные данные в виде списка

>>> lst = input("Enter list values : ")
Enter list values : list([1,2,3,4,5,6])
>>> lst
[1, 2, 3, 4, 5, 6]

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

>>> lst = map(int, raw_input("Enter list values : ").split())
Enter list values : 1 2 3 4 5 6
>>> lst
[1, 2, 3, 4, 5, 6]
...