Почему мой двойной цикл выводит странное значение - PullRequest
0 голосов
/ 21 февраля 2019

Редактировать: я на мобильном телефоне, и он неправильно отформатировал.Это мой первый раз с переполнением стека

Я совершенно новичок в программировании и даже не знаю, как сформулировать и найти вопрос, на который я пытаюсь ответить

Когда я запускаю это:

Magicians = ['kory', 'bob', 'jamie', 'cody']
for Magicians in Magicians:
    print(Magicians)
for Magicians in Magicians:
    print(Magicians)

Я понял: Кори Боб Джейми Коди Коди

Может кто-нибудь помочь мне понять?Я читаю ускоренный курс по питону Эрика Мэттса, и он ничего не говорит об этом, и я не могу понять это

Спасибо

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

Он печатает c o d y, потому что в последнем цикле вы использовали переменную Magicians в качестве переменной итерации.Таким образом, Magicians после первого цикла соответствует строке "cody".В python вы можете перебирать строку в виде списка, поэтому во втором цикле вы получаете буквы "cody".

Magicians = ['kory', 'bob', 'jamie', 'cody']
for Magicians in Magicians:
    print(Magicians)
# Prints: kory   bob  jaime  cody
#Now Magicians = 'cody'
for Magicians in Magicians:
    print(Magicians)
#Prints: c o d y
0 голосов
/ 21 февраля 2019

Простое понимание списка может помочь вам понять, как работает цикл

Это выложит все символы для каждого машиниста в списке Magicians

Magicians = ['kory', 'bob', 'jamie', 'cody']
[[char for char in magician] for magician in Magicians]

Вывод:

[['k', 'o', 'r', 'y'],
 ['b', 'o', 'b'],
 ['j', 'a', 'm', 'i', 'e'],
 ['c', 'o', 'd', 'y']]
0 голосов
/ 21 февраля 2019

Ваш первый цикл говорит, что нужно разделить Magicians на элементы, поэтому первая итерация будет "kory".Вашему следующему циклу (который выполняется только для последнего значения «cody», потому что он не является вложенным) сказано дополнительно разделить это на элементы.Он делает это, беря строку «cody» и разбивая ее на буквы.Затем печатается каждое письмо!

Вы можете попробовать следующее:

Magicians = ['kory', 'bob', 'jamie', 'cody']
for Magician in Magicians:
    print(Magician)
    for letter in Magician:
        print(letter)

Это напечатает «Кори Кори Боб Джейми Джейди Коди Коди», и я думаю, что, по сути, иллюстрирует то, что вы пытаетесьделаем.

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