Книга «Изучаем Python»



Pdf көрінісі
бет96/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   92   93   94   95   96   97   98   99   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 8 • Функции
Вызовем функцию 
build_profile()
и передадим ей имя 
'albert'
, фами-
лию 
'einstein'
, и еще две пары «ключ—значение» 
location='princeton'
и 
field='physics'
. Программа сохраняет возвращенный словарь в 
user_profile
и выводит его содержимое:
{'first_name': 'albert', 'last_name': 'einstein',
'location': 'princeton', 'field': 'physics'}
Возвращаемый словарь содержит имя и фамилию пользователя, а в данном случае 
еще и местонахождение и область исследований. Функция будет работать, сколько 
бы дополнительных пар «ключ—значение» ни было передано при вызове функции.
При написании функций допускаются самые разнообразные варианты смешения 
позиционных, именованных и произвольных значений. Полезно знать о существо-
вании всех этих типов аргументов, потому что они часто будут встречаться вам 
при чтении чужого кода. Только с опытом вы научитесь правильно использовать 
разные типы аргументов и поймете, когда следует применять каждый тип; а пока 
просто используйте самый простой способ, который позволит решить задачу. 
С течением времени вы научитесь выбирать наиболее эффективный вариант для 
каждой конкретной ситуации.
УПРАЖНЕНИЯ
8-12 . Сэндвичи: напишите функцию, которая получает список компонентов сэндвича . Функ-
ция должна иметь один параметр для любого количества значений, переданных при вызове 
функции, и выводить описание заказанного сэндвича . Вызовите функцию три раза с разны-
ми количествами аргументов .
8-13 . Профиль: начните с копии программы user_profile .py . Создайте собственный профиль 
вызовом build_profile(), укажите имя, фамилию и три другие пары «ключ—значение» для 
вашего описания .
8-14 . Автомобили: напишите функцию для сохранения информации об автомобиле в слова-
ре . Функция всегда должна возвращать производителя и название модели, но при этом она 
может получать произвольное количество именованных аргументов . Вызовите функцию 
с передачей обязательной информации и еще двух пар «имя—значение» (например, цвет 
и комплектация) . Ваша функция должна работать для вызовов следующего вида:
car = make_car(‘subaru’, ‘outback’, color=’blue’, tow_package=True)
Выведите возвращаемый словарь и убедитесь в том, что вся информация была сохранена 
правильно .
Хранение функций в модулях
Одно из преимуществ функций заключается в том, что они отделяют блоки кода 
от основной программы. Если для функций были выбраны содержательные имена, 
ваша программа будет намного проще читаться. Можно пойти еще дальше и сохра-
нить функции в отдельном файле, называемом 
модулем
, а затем 
импортировать
модуль в свою программу. Команда 
import
сообщает Python, что код модуля дол-
жен быть доступен в текущем выполняемом программном файле.
Хранение функций в отдельных файлах позволяет скрыть второстепенные детали 
кода и сосредоточиться на логике более высокого уровня. Кроме того, функции 


Хранение функций в модулях
155
можно использовать во множестве разных программ. Функции, хранящиеся в от-
дельных файлах, можно передать другим программистам без распространения 
полного кода программы. А умение импортировать функции позволит вам исполь-
зовать библиотеки функций, написанные другими программистами.
Существует несколько способов импортирования модулей; все они кратко рас-
сматриваются ниже.
Импортирование всего модуля
Чтобы заняться импортированием функций, сначала необходимо создать модуль. 
Модуль представляет собой файл с расширением 
.py
, содержащий код, который 
вы хотите импортировать в свою программу. Давайте создадим модуль с функци-
ей 
make_pizza()
. Для этого из файла 
pizza .py
следует удалить все, кроме функции 
make_pizza()
:


Достарыңызбен бөлісу:
1   ...   92   93   94   95   96   97   98   99   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет