Почему в операторах печати иногда требуются отступы, а в некоторых случаях отступы разрушают код? - PullRequest
0 голосов
/ 29 апреля 2019

Так например

cast = ["Barney Stinson", "Robin Scherbatsky", "Ted Mosby", "Lily Aldrin", "Marshall Eriksen"]
heights = [72, 68, 72, 66, 76]

//loop

for i, name in enumerate(cast):
    cast[i] = name + " " + str(heights[i])


print(cast)

Если я сделаю отступ в коде для включения его в цикл for, оператор print вернет несколько копий моего вывода в абсолютно хаотическом порядке. Однако, когда я вместо этого использую оператор печати без отступа, все работает хорошо, когда я возвращаю имена и высоты по порядку. Очевидно, что проблема в цикле, но я сталкиваюсь с этим не впервые, и я был бы признателен за подробное объяснение. Thnx!

1 Ответ

3 голосов
/ 29 апреля 2019

В то время как языки, такие как C, Go, Java и т. Д., Используют фигурные скобки ({}) для разделения блоков кода, Python использует отступы.

Итак, этот код

for i, name in enumerate(cast):
    cast[i] = name + " " + str(heights[i])
print(cast)

сначала выполнит итерацию по cast и переназначит его элементы (блок с отступом), прежде чем перейти к следующему оператору, в этом случае print.

Этот код с другой стороны

for i, name in enumerate(cast):
    cast[i] = name + " " + str(heights[i])
    print(cast)

будет печатать весь cast для каждой итерации цикла for.

Отступ является частью основного дизайна Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...