Почему этот цикл for в Python3 возвращает значение словаря, разделенное буквами?

#python #python-3.x #for-loop #dictionary

#python #python-3.x #for-цикл #словарь

Вопрос:

Я изучаю Python из книги, и есть этот пример. Я переписал пример так, как он показан в книге, но результат отличается от книг.

Это код

 favorite_languages = {
   'jen': ['python','ruby'],
   'bil': 'c',
   'edward': ['ruby','haskell'],
   'phil': 'python',
   'marcis': ['octave','python','mysql'],
   }

for name, languages in favorite_languages.items():
    print("n"  name.title() "'s favorite language(s) are:")
    for language in languages:
        print("t"   language.title())
 

Это результат, напечатанный консолями. Проблема, как вы видите, заключается в том, что консоль выводит значение ‘python’ для предложения Фила.

Консоль записывает слово Python по буквам в каждой строке

Я пробовал другие IDLE и тот же результат!
Почему имя python пишется буквами в каждой строке для примера Фила? Это какой-то язык Python или проблема с моим кодом?

Комментарии:

1. Вероятно, ваша книга написала это намеренно, чтобы вы точно поняли этот момент.

Ответ №1:

Потому что линия:

 for language in languages:
 

перебирает строку ‘python’ и выдает вам отдельные буквы, если вы напишете ее как [‘python’], она будет перебирать список и записывать его как одно слово

Комментарии:

1. Для ОП: То же самое происходит с любимым языком Билла, c , но поскольку это всего лишь одна буква, вы не видите ее в печати.