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)