Возможно, вы используете интерактивный Python-интерпретатор , который вызовет выражение print(i)
во время оценки и поэтому вы получите первую часть вывода:
('a', 1)
('b', 2)
('c', 3)
Более тогорезультат вызова print(i)
(это значение, которое вы получаете при оценке выражения print(i)
) равно None
, и так как вы используете понимание списка значение выражения, которое вы передалипереводчику - [None, None, None]
.Как обычно, интерпретатор печатает значение введенного вами выражения, которое объясняет последнюю строку:
[None, None, None]
Если бы вы выполнили выражение в виде скрипта, вы бы получили ожидаемый результат:
% cat ./1.py
#!/usr/bin/python3
[print(i) for i in range(1, 3)]
% ./1.py
1
2
Обратите внимание, что это , а не и , встроенный для цикла , насколько я могу судить, такого понятия не существует.Вместо этого он называется списком и представляет собой специальный синтаксис для создания списков.
Если вы находитесь в интерпретаторе и хотите одну строку для цикла, вы можете попробовать:
for i in range(3): print(i)
, но вам нужнонажать , дважды ввести .