Coding for KidsCoding for Kids
Cấp Độ Sáng TạoThử TháchHướng Dẫn Giáo Viên
Bình chọn tính năng
Khóa học Phát triển Python Nâng cao
Chương
>
Cấp độ

Hàm Nâng Cao
Hàm lambda

Mục tiêu

Sử dụng hàm lambda để ghi nhận một số mặt hàng tiêu hao để có thể thu thập cho việc vận chuyển sau này.

Một số loại trái cây và dâu trên cánh đồng đã sắp đến thời điểm thu hoạch để có thể được lưu trữ, vận chuyển và bán. Sẽ là một ý tưởng hay khi ghi lại các mặt hàng sắp đến thời điểm thu hoạch để bạn có ước tính về số lượng sản phẩm từ cánh đồng này đang được đóng gói và vận chuyển.

Để tối ưu hóa code của bạn, bạn có thể sử dụng hàm lambda, đây là một cách khác để tạo các hàm tùy chỉnh, nhưng nhanh chóng hơn khi các hàm bạn tạo ra đơn giản.

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

Trong ví dụ trên, bạn có hai hàm, một hàm tùy chỉnh và một hàm lambda. Mặc dù chúng được viết theo cách khác nhau, nhưng về chức năng thì chúng hoàn toàn giống nhau, hàm lambda chỉ đơn giản là dễ sử dụng hơn và có thể được thiết lập nhanh chóng ở giữa code. Tuy nhiên, phương pháp định nghĩa hàm thông thường vẫn rất hữu ích cho các chuỗi code phức tạp.

Có hai (2) loại mặt hàng có thể được phân loại trong cánh đồng: "fruits" và "berries". Trong số hai (2) loại này, có ba (3) loại trái cây: apples, pearsoranges; và có ba (3) loại dâu: red, bluepurple.

Đầu tiên, thiết lập hàm lambda được minh họa ở trên có tên là calculate, hàm này sẽ cho phép chúng ta tính số lượng mặt hàng dự đoán cho mùa bằng cách cộng ba giá trị và nhân với hai (2). Tạo một hàm lambda khác có tên estimate để ước tính số mặt hàng sẽ được thu thập, như một hàm nói tùy chỉnh. Cuối cùng, thiết lập một hàm lambda có tên total dùng để cộng hai giá trị lại với nhau và trừ đi một giá trị thứ ba được gọi là 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)

Tạo các biến cho ba (3) loại trái cây, và cộng số lượng của mỗi loại có trên cánh đồng. Đi tới dấu X tối và sử dụng hàm lambda calculate() với cả ba biến trái cây, và lưu giá trị vào một biến tùy chỉnh có tên fruit_number, như sau: fruit_number = calculate(orange,pear,apple). Sau đó, sử dụng hàm lambda estimate() với fruit_number làm số và "fruits" làm tên, như sau: estimate(fruit_number, "fruits" ).

Sau khi hoàn thành với trái cây, hãy đi tới dấu X sáng và làm tương tự với dâu. Thiết lập các biến cho ba (3) loại dâu với số lượng bụi cây bạn đếm được trên cánh đồng, sau đó thiết lập hàm lambda theo cách bạn đã làm với trái cây, như sau: berry_number = calculate(red,blue,purple). Sử dụng hàm lambda estimate với berry_number và "berries" làm đối số.

Có một hằng số tên là doc chứa các ước tính của tháng trước cho sản phẩm bị mất. Đi tới kho chứa, di chuyển về phía dấu X màu vàng và sử dụng hàm speak() với hằng số đó để đọc tài liệu trên bàn, từ đó bạn có thể xác định số liệu của tháng trước.

Khi số liệu của tháng trước đã được xác định, hãy đi tới dấu X tối nằm trên tấm thảm màu tím, đối mặt với bàn để xác định tổng số của tháng này. Tạo một biến có tên season để tính tổng số của mùa, sử dụng fruit_numberberry_number làm các số, và sử dụng số bạn xác định từ hằng số doc làm đối số loss, như sau: season = total(berry_number,fruit_number, number found in doc constant)

Tiếp theo, sử dụng hàm lambda estimate() với biến season làm số và "products" làm tên để hoàn thành cấp độ.

Sách Mã