154
Глава 8 • Функции
Функция
build_person()
получает имя и фамилию и сохраняет полученные зна-
чения в словаре в точке
. Значение
first_name
сохраняется с ключом
'first'
,
а значение
last_name
— с ключом
'last'
. Весь словарь с описанием челове-
ка возвращается в точке
. Возвращаемое значение выводится в точке
с дву-
мя исходными фрагментами текстовой информации, теперь хранящимися в сло-
варе:
{'first': 'jimi', 'last': 'hendrix'}
Функция получает простую текстовую информацию и помещает ее в более удоб-
ную структуру данных, которая позволяет работать с информацией (помимо про-
стого вывода). Строки
'jimi'
и
'hendrix'
теперь помечены как имя и фамилия.
Функцию можно легко расширить так, чтобы она принимала дополнительные
значения — второе имя, возраст, профессию или любую другую информацию о че-
ловеке, которую вы хотите сохранить. Например, следующее изменение позволяет
также сохранить возраст человека:
def build_person(first_name, last_name):
"""Возвращает словарь с информацией о человеке."""
person = {'first': first_name, 'last': last_name}
if age:
person['age'] = age
return person
musician = build_person('jimi', 'hendrix', age=27)
print(musician)
В определение функции добавляется новый необязательный параметр
age
, кото-
рому присваивается специальное значение по умолчанию
None
— оно используется
для переменных, которым не присвоено никакое значение. При проверке условий
None
интерпретируется как
False
. Если вызов функции включает значение этого
параметра, то значение сохраняется в словаре. Функция всегда сохраняет имя,
но ее также можно модифицировать, чтобы она сохраняла любую необходимую
информацию о человеке.
Использование функции в цикле while
Функции могут использоваться со всеми структурами Python, уже известными
вам. Например, используем функцию
get_formatted_name()
в цикле
while
, чтобы
поприветствовать пользователей более официально. Первая версия программы,
приветствующей пользователей по имени и фамилии, может выглядеть так:
Достарыңызбен бөлісу: