Python, для l oop, Python петель - PullRequest
0 голосов
/ 25 мая 2020
• 1000 Пожалуйста, объясните мне об этом.

Ответы [ 2 ]

2 голосов
/ 25 мая 2020

Вы запустили

[print (i) for i in range (0, 10)]

, который захватил None возвращаемое значение из print, десять раз.

Чтобы избежать этого, попробуйте запустить его без понимания списка:

for i in range(10):
    print(i)
0 голосов
/ 25 мая 2020

Python REPL, в котором вы запускаете код, выводит результат оценки кода, который вы ему дали.

Итак:

, если я дам ему понимание списка, например:

[i for i in range(0,3)]

даже при том, что я не буду явно печатать его, python REPL напечатает результат оценки как

[0,1,2]

Теперь вы запутались, потому что вы используете функцию print(i) с пониманием списка.

Итак, print(i) печатает i, но также его возвращаемое значение (которое составляет None) используется для создания списка через понимание списка:

[print(i) for i in range(0,3)]

, поэтому на выходе будет вывод print(i) PLUS; вывод REPL оцененного списка, который представляет собой список None

0
1
2
[None, None, None]

Другими словами, вы создали список None, но попутно вы также напечатали некоторые значения. если вы хотите только l oop над некоторыми значениями и затем распечатать (а НЕ создавать список), тогда выполните:

for i in range(0, 3): print(i)
...