Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 87

>>> def echo(anything):

... return anything + ' ' + anything

...

>>>

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

>>> echo('Rumplestiltskin')

'Rumplestiltskin Rumplestiltskin'

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

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

копируются в соответствующие параметры внутри функций. В предыдущем при-

мере функции echo() передавалась строка 'Rumplestiltskin'. Это значение копиро-

валось внутри функции echo() в параметр anything, а затем возвращалось (в этом

случае оно удваивалось и разделялось пробелом) вызывающей стороне.

Эти примеры функций довольно просты. Напишем функцию, которая прини-

мает аргумент и что-то с ним делает. Мы адаптируем предыдущий фрагмент кода,

который комментировал цвета. Назовем его commentary и сделаем так, чтобы он

120

Глава 4. Корочка Python: структуры кода

принимал в качестве аргумента строку color. Сделаем так, чтобы он возвращал

описание строки вызывающей стороне, которая может решить, что с ним делать

дальше:

>>> def commentary(color):

... if color == 'red':

... return "It's a tomato."

... elif color == "green":

... return "It's a green pepper."

... elif color == 'bee purple':

... return "I don't know what it is, but only bees can see it."

... else:

... return "I've never heard of the color " + color + "."

...

>>>

Вызовем функцию commentary(), передав ей в качестве аргумента строку 'blue'.

>>> comment = commentary('blue')

Функция сделает следующее:

 присвоит значение 'blue' параметру функции color;

 пройдет по логической цепочке if-elif-else;

 вернет строку;

 присвоит строку переменной comment.

Что мы получим в результате?

>>> print(comment)

I've never heard of the color blue.

Функция может принимать любое количество аргументов (включая нуль) лю-

бого типа. Она может возвращать любое количество результатов (также включая

нуль) любого типа. Если функция не вызывает return явно, вызывающая сторона

получит результат None.

>>> print(do_nothing())

None

None может быть полезным

None — это специальное значение в Python, которое заполняет собой пустое место,