Можем ли мы объявить пустую функцию в a для l oop? - PullRequest
0 голосов
/ 21 апреля 2020
def dec_list():
    a = list()
    for i in range(0, 3):
        i = int(input("Enter the values: "))
        a.append(i)
    print(a)
x = dec_list()
print(x)
output:
[1,2,3]
total = 0
for num in x:
    total = total + num
    print(total)
output:
    for num in x:
TypeError: 'NoneType' object is not iterable

Что касается первой части кода, мой вывод работает (т.е. [1,2,3]), но когда я пытаюсь запустить для l oop с функцией, есть ошибка, которая возникает. Не могли бы вы помочь мне с этой проблемой?

(извините, если задавать вопросы мне неуместно, это мой первый раз)

Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Вы должны знать, что когда print что-то внутри функции, это не вывод! Следовательно, вывод функции dec_list равен None, не так, как вы упомянули.

Для работы со вторым кодом вам необходимо вернуть список внутри функции. Итак, вам нужно переписать функцию следующим образом:

def dec_list():
    a = list()
    for i in range(0, 3):
        i = int(input("Enter the values: "))
        a.append(i)
    print(a)
    return a # this line I mean
x = dec_list()

Теперь вторая часть может быть запущена без ошибок.

0 голосов
/ 21 апреля 2020

Что-то в этом роде?

total = 0
for num in x:
    pass
...