Coding for KidsCoding for Kids
Творческие УровниИспытанияРуководство для Учителей
Голосовать за функции
Продвинутый курс разработки на Python
Глава
>
Уровень

Продвинутые функции
Функции с переменным числом аргументов

Цель

Соберите все расходные материалы со склада и упакуйте их в контейнеры для хранения, используя функции с переменным числом аргументов.

Внутри склада находится несколько пищевых продуктов, которые необходимо упаковать для дальнейшей отправки на продажу. Чтобы сделать это эффективно, вы можете создать пользовательские функции с переменным числом аргументов. Это функции, у которых нет фиксированного числа аргументов, что позволяет передавать столько аргументов, сколько необходимо для выполнения действий функции.

Существует два (2) способа добавить переменное число аргументов к функции, в зависимости от того, чего вы пытаетесь достичь. Первый способ – создание списка аргументов: вместо указания различных имён аргументов, поставьте звездочку перед одним аргументом. Это автоматически создаёт список.

def custom_function(message,*arguments): player.speak(message) return(arguments) value = custom_function("lalala","one","two","three") # The message "lalala" is printed on screen # Value now returns the list ("one","two","three")

Второй способ заключается в том, чтобы поместить аргументы в словарь, а не в список. Это делается аналогично предыдущему методу, но вместо одной звездочки используется две. Это автоматически создаёт словарь вместо списка.

def custom_function(message,**arguments): player.speak(message) return(arguments) value = custom_function("lalala", one = 1, two = 2, three = 3) # The message "lalala" is printed on screen # Value now returns the dictionary: # {'one': 1, 'three': 3, 'two': 2}

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

def pack_singles(name,*items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items) def pack_multi(name,**items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items)

На поле есть четыре (4) различных типа предметов: "jars", "eggs", "berries" и "fruit". Соберите все предметы на складе и направьтесь к крестикам X на транспортировочной полосе. Идите к тёмным крестикам X и используйте функцию pack_singles для упаковки "jars" и "eggs".

Для "jars" вы собираете четыре (4) типа, которые передаются в виде аргументов: "white", "purple", "red" и "brown". Они должны быть размещены в контейнере на зеленом ковре. Код записывается следующим образом: pack_singles("jars", "white", "purple", "red", "brown")

Для "eggs" вы собираете три (3) типа, которые передаются в виде аргументов: "white", "green" и "blue". Они должны быть размещены в контейнере на оранжевом ковре. Используется тот же формат, что и в предыдущем случае.

Затем направьтесь к светлым крестикам X и используйте функцию pack_multi для упаковки "berries" и "fruit". Для "berries" вы собираете три (3) типа, которые передаются в виде аргументов: "red", "blue" и "purple". Они должны быть размещены в контейнере на синем ковре. Вам необходимо добавить количества для каждого, как в следующем примере: pack_multi("berries", red = 3 , blue = 2 , purple = 4 )

Для "fruit" вы собираете четыре (4) типа, которые передаются в виде аргументов: "apple", "pear", "orange" и "peach". Они должны быть размещены в контейнере на красном ковре. Используйте тот же формат, что и в предыдущем случае, убедившись, что все предметы собраны и упакованы для завершения уровня.

Книга Кода