Khóa học Phát triển Python Nâng cao
Chương
>
Cấp độ
Các mô-đun toán học
Mô-đun Toán tử
Mục tiêu
Kiểm tra và phân bổ các đơn hàng vật liệu xây dựng cho đất nông nghiệp mới bằng cách sử dụng module operator.
Tầng trên của phần phụ có một số văn phòng chứa các bản ghi nhật ký của kho và các đơn hàng vật liệu xây dựng cần thiết cho việc phát triển đất đai mới. Có nhiều công cụ khác nhau có thể được sử dụng để xác thực và tính toán các vật liệu để có thể sử dụng cho công trình, bên cạnh module toán học và thống kê, chúng ta có thể sử dụng module operator.
Module này, import operator, có thể được sử dụng để đơn giản hóa các phép toán của toán tử và tiện lợi đóng gói chúng vào các hàm. Bạn có thể sử dụng các hàm này cho cả việc tối ưu hóa cũng như để tạo ra các giá trị mà không cần tạo một đối tượng để lưu trữ các giá trị cho các phép tính.
operators.eq(): Nhận hai đối số, kiểm tra xem các đối số có bằng nhau không.operators.lt(): Nhận hai đối số, kiểm tra xem đối số đầu tiên có nhỏ hơn đối số thứ hai không.operators.gt(): Nhận hai đối số, kiểm tra xem đối số đầu tiên có lớn hơn đối số thứ hai không.operators.floordiv(): Nhận hai đối số, chia đối số đầu tiên cho đối số thứ hai và áp dụng tương đương vớimath.floor(), làm tròn kết quả xuống.operators.mod(): Nhận hai đối số, trả về phần dư của phép chia giữa hai đối số.operators.contains(): Hàm được sử dụng với một danh sách, nhận hai (2) đối số, đối số đầu tiên là một danh sách, đối số thứ hai là giá trị bạn muốn kiểm tra xem có tồn tại trong danh sách hay không. Trả về:truehoặcfalsetùy thuộc vào việc giá trị có tồn tại hay không.operators.concat(): Nhận hai danh sách làm đối số, kết hợp hai danh sách lại với nhau bằng một hàm duy nhất gọn gàng, có thể nhanh hơn các phương pháp khác.operators.countOf(): Nhận hai đối số, một danh sách và một giá trị để kiểm tra số lần giá trị đó xuất hiện trong danh sách. Trả về số lượng trường hợp xuất hiện của giá trị đó.
Để bắt đầu, hãy đi đến dấu X tối trên các tấm thảm có màu đỏ, xanh dương và xanh lá cây. Có sáu (6) hằng số: red_order, blue_order, green_order, là các đơn hàng vật liệu và: red_req, blue_req, green_req là số lượng cần thiết để xây dựng.
Tại dấu X tối trên tấm thảm đỏ, sử dụng hàm read() để kiểm tra số lượng vật liệu cần thiết. Tạo một biến có tên là red_verification và sử dụng hàm operator.eq() với các hằng số red_order và red_req, như sau: red_verification = operator.eq(red_order,red_req). Với hàm write() được viết sẵn, sử dụng red_verification để hiển thị kết quả.
Tại các dấu X màu xanh dương và xanh lá, lặp lại quy trình tương tự, sử dụng hàm read() và tạo các biến: blue_verification và green_verification. Đối với biến blue, lưu giá trị của operator.lt() sử dụng các hằng số blue_order và blue_req để kiểm tra xem đơn hàng có ít hơn so với yêu cầu hay không. Đối với biến green, lưu giá trị của operator.gt() sử dụng các hằng số green_order và green_req để kiểm tra xem đơn hàng có lớn hơn so với vật liệu yêu cầu hay không. Sử dụng các hàm write() được viết sẵn với các hàm xác thực tương ứng cho các tấm thảm có màu tương ứng.
Tiếp theo, đi đến dấu X nhạt và trên bàn sử dụng hàm read() để kiểm tra các đơn hàng đã được đặt và đang trên đường đến. Trong sổ đơn hàng, bạn sẽ thấy các giá trị của hai hằng số biến: main_order và sub_order cũng như số phần mà vật liệu cần được chia thành. Sau khi đọc sổ đơn hàng, tạo một biến có tên là allocations và lưu giá trị của operator.floordiv() để chia giá trị main_order cho số phần được mô tả trong sổ, như sau: allocations = operator.floordiv(main_order, -add sections-) điều này chia đơn hàng và làm tròn xuống kết quả. Sử dụng hàm write() được viết sẵn với biến allocations để ghi lại kết quả.
Đi đến dấu X màu vàng và tạo một biến có tên là remainder, lưu kết quả của operator.mod() và cộng cả hai hằng số main_order và sub_order để tạo ra phần dư của hai đơn hàng. Trên bàn, sử dụng hàm write() được viết sẵn và thêm biến remainder để ghi lại kết quả.
Hãy đến dấu X tối trên tấm thảm màu tím, ở đây chúng ta sẽ xác nhận xem việc giao hàng các công cụ cần thiết cho công trình đã được thực hiện hay chưa. Chúng ta có hai hằng số danh sách, delivery_1 và delivery_2, chúng ta sẽ kiểm tra xem các công cụ có được giao trong lần giao hàng đầu tiên hay không. Tạo một biến có tên là tools và lưu kết quả của operator.contains(), đối số thứ nhất là danh sách delivery_1 và đối số thứ hai là chuỗi “tools”. Điều này sẽ kiểm tra xem các công cụ có xuất hiện trong đơn giao hàng hay không, như sau: tools = operator.contains(delivery_1,"tools"). Khi hoàn tất, trên bàn, sử dụng hàm write() được viết sẵn với biến tools để ghi lại kết quả xác nhận xem các công cụ đã được giao thành công hay chưa.
Tiếp theo là kiểm tra tất cả các đơn giao, hãy đến dấu X tối trên tấm thảm màu trắng và tạo một danh sách có tên là materials. Sử dụng nó để lưu giá trị của operator.concat(), sử dụng các danh sách delivery_1 và delivery_2 làm đối số. Điều này nhanh chóng gộp hai danh sách lại thành một danh sách duy nhất. Trên bàn, sử dụng hàm write() được viết sẵn với biến materials để ghi chú lại tất cả các vật liệu đã được giao cho công trình.
Cuối cùng, đi đến dấu X tối trên tấm thảm màu cam, ở đây có một số điều kiện tiên quyết được viết ra cho việc bắt đầu xây dựng, một trong những chỉ dẫn chính là lượng gỗ cần thiết lúc bắt đầu tính theo tấn. Kiểm tra lượng gỗ đã được giao trong toàn bộ đơn giao và thông báo nó, sử dụng hàm speak() với hàm operator.countOf(). Đối số thứ nhất là danh sách materials mà bạn đã tạo, tiếp theo là chuỗi “wood”, điều này sẽ trả về số lần xuất hiện của gỗ trong danh sách materials. Điều này minh họa cách các hàm operator có thể được sử dụng độc lập mà không cần phải lưu trữ trong một đối tượng, như sau: player.speak(operator.countOf(materials,"wood")). Điều này sẽ hoàn thành cấp độ.