Простой Python. Современный стиль программирования (Любанович) - страница 273

>>>> for thing in ('Got %s' % number for number in range(10)):

>…·····print(thing)

>…

>Got 0

>Got 1

>Got 2

>Got 3

>Got 4

>Got 5

>Got 6

>Got 7

>Got 8

>Got 9

8. Определите функцию good, которая возвращает список ['Harry', 'Ron', 'Hermione']:

>>>> def good():

>…·····return ['Harry', 'Ron', 'Hermione']

>…

>>>> good()

>['Harry', 'Ron', 'Hermione']

9. Определите функцию генератора get_odds, которая возвращает нечетные числа из диапазона range(10). Используйте цикл for, чтобы найти и вывести третье возвращенное значение:

>>>> def get_odds():

>…·····for number in range(1, 10, 2):

>…·········yield number

>…

>>>> for count, number in enumerate(get_odds(), 1):

>…·····if count == 3:

>…·········print("The third odd number is", number)

>…·········break

>…

Третье нечетное число равно 5.

10. Определите декоратор test, который выводит строку 'start', когда вызывается функция, и строку 'end', когда функция завершает свою работу:

>>>> def test(func):

>…·····def new_func(*args, **kwargs):

>…·········print('start')

>…·········result = func(*args, **kwargs)

>…·········print('end')

>…·········return result

>…·····return new_func

>…

>>>>

>>>> @test

>… def greeting():

>…·····print("Greetings, Earthling")

>…

>>>> greeting()

>start

>Greetings, Earthling

>end

11. Определите исключение, которое называется OopsException. Сгенерируйте его, чтобы увидеть, что произойдет. Затем напишите код, позволяющий поймать это исключение и вывести строку 'Caught an oops':

>>>> class OopsException(Exception):

>…·····pass

>…

>>>> raise OopsException()

>Traceback (most recent call last):

>··File "", line 1, in

>__main__.OopsException

>>>>

>>>> try:

>…·····raise OopsException

>… except OopsException:

>…·····print('Caught an oops')

>…

>Caught an oops

12. Используйте функцию zip(), чтобы создать словарь movies, который объединяет в пары эти списки: titles = ['Creature of Habit', 'Crewel Fate'] и plots = ['A nun turns into a monster', 'A haunted yarn shop']:

>>>> titles = ['Creature of Habit', 'Crewel Fate']

>>>> plots = ['A nun turns into a monster', 'A haunted yarn shop']

>>>> movies = dict(zip(titles, plots))

>>>> movies

>{'Crewel Fate': 'A haunted yarn shop', 'Creature of Habit': 'A nun turns into a monster'}

Глава 5. Py Boxes: модули, пакеты и программы

1. Создайте файл, который называется zoo.py. В этом файле объявите функцию hours(), которая выводит на экран строку 'Open 9–5 daily'. Далее используйте интерактивный интерпретатор, чтобы импортировать модуль zoo и вызвать его функцию hours().

Так выглядит файл zoo.py:

>def hours():

>····print('Open 9–5 daily')

А теперь импортируем его интерактивно:

>>>> import zoo

>>>> zoo.hours()