Coding for KidsCoding for Kids
Креативні РівніВикликиПосібник для Вчителів
Голосувати за функції
Поглиблений курс розробки на Python
Розділ
>
Рівень

Розширені функції
Lambda функції

Мета

Використовуйте lambda-функції для документування деяких витратних матеріалів, щоб їх потім можна було зібрати для відправки.

Деякі фрукти та ягоди на полі майже готові до збору, щоб їх можна було зберігати, відправляти і продавати. Було б доцільно задокументувати товари, які майже готові, щоб ви мали уявлення про те, скільки продуктів з цього поля упаковано та відправлено.

Щоб оптимізувати ваш код, ви можете використовувати lambda-функції, це інший спосіб створення користувацьких функцій, але він швидший, коли створювані функції є простішими.

# Normal Custom Function def calculate(x , y , z) : return( (x+y+z) *2 ) # Lambda Function calculate = lambda x,y,z : (x + y + z) * 2

У вищенаведеному прикладі є дві функції: звичайна користувацька функція та lambda-функція. Хоча вони записані по-різному, за функціоналом вони однакові, lambda-функція просто зручніша у використанні та може бути швидко створена "на льоту" у середині коду. Проте звичайний метод визначення функцій все ще дуже корисний для складних послідовностей коду.

Існує два (2) типи елементів, які можна категоризувати на полі: fruits та berries. З цих двох (2) типів існує три (3) фрукти: apples , pears та oranges; і три (3) ягоди: red , blue та purple.

Спочатку встановіть lambda-функцію, показану вище під назвою calculate. Це дозволить нам отримати кількість елементів, передбачених для сезону, шляхом додавання трьох елементів та множення їх на два (2). Створіть ще одну lambda-функцію під назвою estimate, щоб оцінити кількість елементів, які будуть зібрані, як користувацьку функцію speak. Нарешті, встановіть lambda-функцію під назвою total, яка додає два значення разом і віднімає третє значення під назвою loss.

# Calculate items calculate = lambda x,y,z : (x + y + z) * 2 # Estimate items estimate = lambda number , name : player.speak( "I estimate %d %s this season" % (number,name) ) # Total all items total = lambda num1, num2, loss : ( (num1 + num2) - loss)

Створіть змінні для кожного з трьох (3) фруктів і додайте кількість, скільки кожного з них знаходиться на полі. Пройдіться до темного X-значка та використайте lambda-функцію calculate() з усіма трьома змінними фруктів, і збережіть значення у користувацьку змінну під назвою fruit_number, наприклад: fruit_number = calculate(orange,pear,apple). Потім використайте lambda-функцію estimate() з fruit_number як числовим аргументом та "fruits" як аргументом іменем, наприклад: estimate(fruit_number, "fruits" ).

Після того, як ви закінчите з фруктами, пройдіться до світлого X-значка і зробіть те саме з ягодами. Встановіть змінні для трьох (3) ягід із кількістю кущів, які ви рахуєте на полі, потім встановіть lambda-функцію так само, як ви робили з фруктами, наприклад: berry_number = calculate(red,blue,purple). Використайте lambda-функцію estimate з berry_number та "berries" як аргументами.

Існує константа під назвою doc, яка містить минуломісячні оцінки втрат продукту. Перейдіть до складу, пройдіться до золотого X-значка та використайте функцію speak() з цією константою, щоб прочитати документ на столі і визначити числові дані минулого місяця.

Коли числові дані минулого місяця вам відомі, пройдіться до темного X-значка на фіолетовому килимі, зверніться до столу, щоб визначити підсумкові значення на цей місяць. Створіть змінну під назвою season для обчислення підсумкових значень сезону, використовуючи fruit_number та berry_number як числові значення, а також число, яке ви визначили з константи doc, як аргумент loss, наприклад: season = total(berry_number,fruit_number, number found in doc constant)

Завершіть рівень, використавши lambda-функцію estimate() з змінною season як числовим аргументом та "products" як аргументом іменем.

Книга Коду