… except OopsException as exc:
…·····print(exc)
…
panic
Упражнения
1. Присвойте значение 7 переменной guess_me. Далее напишите условные проверки (if, else и elif), чтобы вывести строку 'too low', если значение переменной guess_me меньше 7, 'too high', если оно больше 7, и 'just right', если равно 7.
2. Присвойте значение 7 переменной guess_me и значение 1 переменной start. Напишите цикл while, который сравнивает переменные start и guess_me. Выведите строку 'too low', если значение переменной start меньше значения переменной guess_me. Если значение переменной start равно значению переменной guess_me, выведите строку 'found it!' и выйдите из цикла. Если значение переменной start больше значения переменной guess_me, выведите строку 'oops' и выйдите из цикла. Увеличьте значение переменной start на выходе из цикла.
3. Используйте цикл for, чтобы вывести на экран значения списка [3, 2, 1, 0].
4. Используйте включение списка, чтобы создать список, который содержит нечетные числа в диапазоне range(10).
5. Используйте включение словаря, чтобы создать словарь squares. Используйте вызов range(10), чтобы получить ключи, и возведите их в квадрат, чтобы получить их значения.
6. Используйте включение множества, чтобы создать множество odd, которое содержит четные числа в диапазоне range(10).
7. Используйте включение генератора, чтобы вернуть строку 'Got' и количество чисел в диапазоне range(10). Итерируйте по нему с помощью цикла for.
8. Определите функцию good, которая возвращает список ['Harry', 'Ron', 'Hermione'].
9. Определите функцию генератора get_odds, которая возвращает четные числа из диапазона range(10). Используйте цикл for, чтобы найти и вывести третье возвращенное значение.
10. Определите декоратор test, который выводит строку 'start', когда вызывается функция, и строку 'end', когда функция завершает свою работу.
11. Определите исключение, которое называется OopsException. Сгенерируйте его, чтобы увидеть, что произойдет. Затем напишите код, позволяющий поймать это исключение и вывести строку 'Caught an oops'.
12. Используйте функцию zip(), чтобы создать словарь movies, который объединяет в пары эти списки: titles = ['Creature of Habit', 'Crewel Fate'] и plots = ['A nun turns into a monster', 'A haunted yarn shop'].
Глава 5. Py Boxes: модули, пакеты и программы
Вы уже прошли путь от встроенных типов данных до создания более крупных структур данных и кода. В этой главе вы наконец дойдете до самого главного и научитесь писать реалистичные и объемные программы на Python.
Отдельные программы
До этого момента вы писали и запускали с помощью интерактивного интерпретатора Python фрагменты кода вроде следующего:
>>> print("This interactive snippet works.")
This interactive snippet works.
Теперь создадим вашу первую отдельную программу. Создайте файл под названием test1.py, содержащий следующую строку кода:
print("This standalone program works!")
Обратите внимание на отсутствие символов >>>, перед вами лишь одна строка кода. Убедитесь, что перед print нет пробелов.
Если вы работаете с Python с помощью текстовой консоли или окна терминала, введите имя вашей программы Python, а затем — имя файла:
$ python test1.py
This standalone program works!
Вы можете сохранить все фрагменты кода, которые встречаются в книге, в файлы и запустить их непосредственно. Если вы копируете их вместо того, чтобы набирать вручную, убедитесь, что удалили все символы >>> и …, а также завершающий символ пробела.
Аргументы командной строки
Создайте файл test2.py, который содержит две следующие строки:
import sys
print('Program arguments:', sys.argv)
Теперь используйте свою версию Python, чтобы запустить эту программу. Вот так может выглядеть окно терминала в операционных системах Linux или Mac OS X, использующее стандартную программу оболочки:
$ python test2.py
Program arguments: ['test2.py']
$ python test2.py tra la la
Program arguments: ['test2.py', 'tra', 'la', 'la']
Модули и оператор import
Мы собираемся перейти на новый уровень — создание и использование кода более чем из одного файла.