Байланысты: Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )
УПРАЖНЕНИЯ 8-9 . Фокусники: создайте список с именами фокусников . Передайте список функции show_
magicians(), которая выводит имя каждого фокусника в списке .
8-10 . Великие фокусники: начните с копии вашей программы из упражнения 8-9 . Напишите
функцию make_great(), которая изменяет список фокусников, добавляя к имени каждого
фокусника приставку «Great» . Вызовите функцию show_magicians() и убедитесь в том, что
список был успешно изменен .
8-11 . Фокусники без изменений: начните с программы из упражнения 8-10 . Вызовите функ-
цию make_great() и передайте ей копию списка имен фокусников . Поскольку исходный
список остался неизменным, верните новый список и сохраните его в отдельном списке .
Вызовите функцию show_magicians() с каждым списком, чтобы показать, что в одном спи-
ске остались исходные имена, а в другом к имени каждого фокусника добавилась приставка
«Great» .
Передача произвольного набора аргументов
В некоторых ситуациях вы не знаете заранее, сколько аргументов должно быть
передано функции. К счастью, Python позволяет функции получить произвольное
количество аргументов из вызывающей команды.
Для примера рассмотрим функцию для создания пиццы. Функция должна полу-
чить набор дополнений к пицце, но вы не знаете заранее, сколько дополнений за-
кажет клиент. Функция в следующем примере получает один параметр
*toppings
,
но этот параметр объединяет все аргументы, заданные в командной строке:
pizza.py def make_pizza(*toppings):
"""Вывод списка заказанных дополнений."""
print(toppings)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')
Звездочка в имени параметра
*toppings
приказывает Python создать пустой кор-
теж с именем
toppings
и упаковать в него все полученные значения. Результат
команды
print
в теле функции показывает, что Python успешно справляется
и с вызовом функции с одним значением, и с вызовом с тремя значениями.
Разные вызовы обрабатываются похожим образом. Обратите внимание: Python
упаковывает аргументы в кортеж даже в том случае, если функция получает всего
одно значение: