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

— это именованный фрагмент кода, отделенный от других. Она может принимает любое количество любых входных параметров и возвращать любое количество любых результатов.

С функцией можно сделать две вещи:

• определить;

• вызвать.

Чтобы определить функцию, вам нужно написать def, имя функции, входные параметры, заключенные в скобки, и, наконец, двоеточие (:). Имена функций подчиняются тем же правилам, что и имена переменных (они должны начинаться с буквы или _ и содержать только буквы, цифры или _).

Давайте действовать пошагово. Сначала определим и вызовем функцию, которая не имеет параметров. Перед вами пример простейшей функции:

>>>> def do_nothing():

>…·····pass

Даже если функции не нужны параметры, вам все равно придется указать круглые скобки и двоеточие в ее определении. Следующую строку необходимо выделить пробелами точно так же, как если бы это был оператор if. Python требует использовать выражение pass, чтобы показать, что функция ничего не делает. Это эквивалентно утверждению «Эта страница специально оставлена пустой» (несмотря на то что теперь это не так).

Функцию можно вызвать, просто написав ее имя и скобки. Она сработает так, как я и обещал, вполне успешно не сделав ничего:

>>>> do_nothing()

>>>>

Теперь определим и вызовем другую функцию, которая не имеет параметров и выводит на экран одно слово:

>>>> def make_a_sound():

>…·····print('quack')

>…

>>>> make_a_sound()

>quack

Когда вы вызываете функцию make_a_sound(), Python выполняет код, расположенный внутри ее описания. В этом случае он выводит одно слово и возвращает управление основной программе.

Попробуем написать функцию, которая не имеет параметров, но возвращает значение:

>>>> def agree():

>…····return True

>…

Вы можете вызвать эту функцию и проверить возвращаемое ею значение с помощью if:

>>>> if agree():

>…·····print('Splendid!')

>… else:

>…·····print('That was unexpected.')

>…

>Splendid!

Только что вы сделали большой шаг. Комбинация функций с проверками вроде if и циклами вроде while позволяет вам делать ранее недоступные вещи.

Теперь пришло время поместить что-нибудь в эти скобки. Определим функцию echo(), имеющую один параметр anything. Она использует оператор return, чтобы отправить значение anything вызывающей стороне дважды, разделив их пробелом:

>>>> def echo(anything):

>…····return anything + ' ' + anything

>…

>>>>

Теперь вызовем функцию echo(), передав ей строку 'Rumplestiltskin':

>>>> echo('Rumplestiltskin')

>'Rumplestiltskin Rumplestiltskin'

Значения, которые вы передаете в функцию при вызове, называются аргументами. Когда вы вызываете функцию с аргументами, значения этих аргументов копируются в соответствующие