14. Создайте и выведите на экран множество английских слов из ключей словаря e2f.
15. Создайте многоуровневый словарь life. Используйте следующие строки для ключей верхнего уровня: 'animals', 'plants' и 'other'. Сделайте так, чтобы ключ 'animals' ссылался на другой словарь, имеющий ключи 'cats', 'octopi' и 'emus'. Сделайте так, чтобы ключ 'cats' ссылался на список строк со значениями 'Henri', 'Grumpy' и 'Lucy'. Остальные ключи должны ссылаться на пустые словари.
16. Выведите на экран высокоуровневые ключи словаря life.
17. Выведите на экран ключи life['animals'].
18. Выведите значения life['animals']['cats'].
Глава 4. Корочка Python: структуры кода
В первых трех главах вы увидели множество примеров данных, но практически не работали с ними. В большинстве примеров использовался интерактивный интерпретатор, а сами они были довольно короткими. Теперь вы увидите, как структурировать код Python, а не только данные.
В большинстве языков программирования символы вроде фигурных скобок ({ и }) или ключевые слова вроде begin и end применяется для того, чтобы разбить код на разделы. В этих языках хорошим тоном является использование отбивки пробелами, чтобы сделать программу более удобочитаемой для себя и других. Существуют даже инструменты, которые помогут красиво выстроить ваш код.
Гвидо ван Россум при разработке Python решил, что выделения пробелами будет достаточно, чтобы задать структуру программы и избежать ввода всех этих скобок. Python отличается от других языков тем, что пробелы в нем используются для того, чтобы задать структуру программы. Этот аспект новички замечают одним из первых, и он может показаться странным для тех, кто уже работал с другими языками программирования. Однако по прошествии некоторого времени это начинает казаться естественным и вы перестаете это замечать. Вы даже привыкнете к тому, что делаете больше, набирая меньше текста.
Комментируем с помощью символа #
Комментарий — это фрагмент текста в вашей программе, который будет проигнорирован интерпретатором Python. Вы можете использовать комментарии, чтобы дать пояснение близлежащего кода, сделать какие-то пометки для себя, или для чего-то еще. Комментарий помечается символом #; все, что находится после # до конца текущей строки, является комментарием. Обычно комментарий располагается на отдельной строке, как показано здесь:
>>> # 60 с/мин * 60 мин/ч * 24 ч/день
>>> seconds_per_day = 86400
Или на той же строке, что и код, который нужно пояснить:
>>> seconds_per_day = 86400 # 60 sec/min * 60 min/hr * 24 hr/day
Символ # имеет много имен: хеш, шарп, фунт или устрашающее октоторп[3]. Как бы вы его ни назвали[4], его эффект действует только до конца строки, на которой он располагается.
Python не дает возможности написать многострочный комментарий. Вам нужно явно начинать каждую строку или раздел комментария с символа #:
>>> # Я могу сказать здесь все, даже если Python это не нравится,
… # поскольку я защищен крутым
… # октоторпом.
…
>>>
Однако если октоторп находится внутри текстовой строки, он становится простым символом #:
>>> print("No comment: quotes make the # harmless.")
No comment: quotes make the # harmless.
Продлеваем строки с помощью символа \
Любая программа становится более удобочитаемой, если ее строки относительно короткие. Рекомендуемая (но не обязательная) максимальная длина строки равна 80 символам. Если вы не можете выразить свою мысль в рамках 80 символов, воспользуйтесь символом возобновления \. Просто поместите его в конце строки, и дальше Python будет действовать так, будто это все та же строка.
Например, если бы я хотел создать длинную строку из нескольких коротких, я мог бы сделать это пошагово:
>>> alphabet = ''
>>> alphabet += 'abcdefg'
>>> alphabet += 'hijklmnop'
>>> alphabet += 'qrstuv'
>>> alphabet += 'wxyz'
Или же за одно действие, использовав символ continuation:
>>> alphabet = 'abcdefg' + \
…······'hijklmnop' + \
…······'qrstuv' + \
…······'wxyz'
Продлить строку может быть необходимо, если выражение располагается на нескольких строках:
>>> 1 + 2 +
··File "<stdin>", line 1
····1 + 2 +
··········^
SyntaxError: invalid syntax
>>> 1 + 2 + \
… 3
6