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". Їх потрібно зберігати в контейнері біля green carpet. Код записується таким чином: pack_singles("jars", "white", "purple", "red", "brown")

Для "eggs" є три (3) різновиди, які ти збираєш і вводиш як аргументи, а саме: "white", "green" та "blue". Їх потрібно зберігати в контейнері біля orange carpet. Використовується той самий формат, що і в попередньому прикладі.

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

Для "fruit" є чотири (4) різновиди, які ти збираєш і вводиш як аргументи, а саме: "apple", "pear", "orange" та "peach". Їх потрібно зберігати в контейнері біля red carpet. Використовується той самий формат, що і в попередньому прикладі, переконайся, що всі предмети зібрані та упаковані для завершення рівня.

Книга Коду