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 độ

Các Hàm Nâng Cao
Hàm bán xác định

Mục tiêu

Đóng gói và bày trí vật liệu xây dựng được giao đến bến cảng bằng cách sử dụng các hàm một phần.

Một số nguồn cung cấp vừa được giao đến bến cảng, chúng cần được đóng gói và lưu trữ để có thể sử dụng làm nguyên liệu xây dựng. Các vật liệu cần được bọc trong vải và buộc chặt bằng chỉ. Điều quan trọng là phải cân tất cả các món khi bạn đóng gói chúng để chúng có thể được vận chuyển hiệu quả sau này. Để tạo điều kiện cho việc này, chúng ta có thể tối ưu quá trình này bằng cách sử dụng Hàm một phần.

Một Hàm một phần là một hàm tùy chỉnh được rút gọn bằng cách không cần thêm các giá trị đối số mà phần lớn đều giống nhau. Điều này cho phép bạn sử dụng các hàm có nhiều đối số và thực hiện chúng chỉ với một đối số hoặc số lượng đối số mà bạn chọn.

from functools import partial

Để bắt đầu, bạn phải import partial từ module có tên là functools, điều này sẽ cho phép bạn tạo ra Hàm một phần. Mã lệnh import luôn được đặt ở đầu trình soạn thảo mã.

Thiết lập một hàm có tên weight và có ba(3) đối số: thread, clothmaterial. Hàm này sẽ cho phép bạn tính toán trọng lượng của các vật liệu được đóng gói, chúng ta có thể tối ưu quá trình này hơn nữa bằng cách đưa nó qua một hàm một phần.

def weight(thread, cloth, material): return 2 * thread + 5 * cloth + material * 10 package = partial(weight, 4, 2)

Tạo một Hàm một phần có tên package, nó được thiết lập theo quy trình tương tự như các hàm lambda. Sử dụng partial() để tạo hàm và thêm tên của hàm cũng như các giá trị cố định cho các đối số mà bạn muốn gán.

Bất kỳ đối số nào của hàm gốc mà bạn không gán sẽ trở thành các đối số cần được cung cấp bởi Hàm một phần. Trong trường hợp của Hàm một phần package(), đó là đối số material.

Đi đến các dấu X tối phía trước các thùng để lấy vật liệu đóng gói. Trên thảm màu vàng có dấu X, sử dụng hàm collect() để lấy "thread" và đi đến dấu X trên thảm màu tím và sử dụng hàm collect() để lấy "cloth". Những vật dụng này sẽ được sử dụng để đóng gói các vật liệu.

Đi qua bến cảng và thu thập tất cả các vật liệu xây dựng, bao gồm: bricks, planks, red_brickswood. Khi bạn thu thập được, hãy thêm số lượng bạn đã thu thập của mỗi loại vào một biến được đặt theo tên của vật liệu, ví dụ: bricks = 3.

Sau đó, đi đến các dấu X sáng phía trước các thùng và tính toán trọng lượng của từng vật liệu xây dựng trước khi lưu trữ chúng. Sử dụng hàm speak() kết hợp với Hàm một phần package() để tính trọng lượng. Sử dụng các biến vật liệu làm đối số cho hàm package(), ví dụ:

player.speak("Package weighs %s pounds" % package(bricks)) player.place(package(bricks))

Tiếp theo, sử dụng hàm place() để lưu trữ vật liệu bên trong các thùng, thực hiện việc này bằng việc sử dụng hàm package() như trong ví dụ trên.

Tại dấu X sáng với thảm màu red hãy cân và lưu trữ bricks. Tại dấu X sáng với thảm màu blue hãy cân và lưu trữ planks. Tại dấu X sáng với thảm màu orange hãy cân và lưu trữ red_bricks. Tại dấu X sáng với thảm màu green hãy cân và lưu trữ wood. Hãy lưu trữ và cân cả bốn(4) vật liệu trong các thùng đúng cách để hoàn thành cấp độ.

Sách Mã