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 học Mở rộng
Mục tiêu
Tính toán các phần mở rộng đất mới cho trang trại bằng cách sử dụng thêm các hàm được nhập từ module math.
Bên kia cầu, phần phụ kiện có một số văn phòng được sử dụng để khảo sát khu đất không liên kết mà nối liền hai phần khác nhau của trang trại. Tại đây, chúng ta sẽ tìm thấy một số kích thước và số đo đất; sẽ là một ý tưởng hay nếu sắp xếp và ghi lại dữ liệu. Bạn có thể thực hiện điều này bằng cách sử dụng module math. Trong cấp độ này, chúng ta sẽ được giới thiệu một bộ các hàm mới của nó mà chúng ta có thể sử dụng để xử lý dữ liệu. Bạn sử dụng cùng cú pháp import math và math. trước các hàm để sử dụng bộ này:
math.radians(): Chuyển đổi độ sang radian / góc.math.floor(): Làm tròn số xuống đến số cơ bản.math.ceil(): Làm tròn số lên đến số cao hơn.math.atan2(): Trả về giá trị arc tangent giữa hai số theo đơn vị radian.math.isclose(): Kiểm tra xem hai số có gần nhau không, trả về true/false.math.fsum(): Cộng các số thập phân (float) lại với nhau từ một danh sách hoặc đối tượng có thể lặp.math.dist(): Tính khoảng cách giữa hai điểm, các giá trị cần là danh sách hoặc đối tượng có thể lặp.
Bắt đầu thu thập dữ liệu thô từ các biểu đồ bằng cách đi tới dấu X sáng trên thảm đỏ và xanh da trời. Sử dụng hàm read() để xác định các kích thước thô cần thiết để lấy số đo. Những số đo này đã được lưu trữ trong bốn hằng số có tên: red_x, red_y, blue_x và blue_y.
Sau khi đã xác định được cả hai tập dữ liệu, hãy đi tới dấu X tối trên thảm màu cam và hướng về bàn làm việc. Sử dụng math.radians() và math.ceil() để chuyển đổi các biến blue_x và blue_y sang radian và làm tròn chúng lên. Sử dụng float() để đảm bảo các hằng số là số thập phân có thể chỉnh sửa. Ví dụ, đối với biến blue_x: chuyển sang radian với blue_x = math.radians(float(blue_x)) và làm tròn giá trị với blue_x = math.ceil(float(blue_x)). Thực hiện tương tự cho blue_y tại dấu X này, sau đó sử dụng hàm write() đã được viết sẵn và thêm các biến blue_x và blue_y để ghi chép chúng lại.
Đi tới dấu X tối trên thảm màu xanh lá và sử dụng math.radians() cùng math.floor() để chuyển đổi các biến red_x và red_y sang radian và làm tròn chúng xuống. Ví dụ, đối với biến red_x: chuyển sang radian với red_x = math.radians(red_x) và làm tròn giá trị với blue_x = math.floor(red_x). Thực hiện tương tự cho red_y tại dấu X này, sau đó sử dụng hàm write() đã được viết sẵn và thêm các biến red_x và red_y để ghi chép chúng lại.
Đi tới dấu X màu vàng và hướng về bàn làm việc, tại đây chúng ta sẽ tạo hai biến mới là data_a và data_b. Tại đây, chúng ta sẽ lưu trữ các giá trị arc tangent của từng tập bằng cách sử dụng hàm math.atan2. Đối với data_a, chúng ta sử dụng các biến blue_x và blue_y để truyền vào hàm, như sau: data_a = math.atan2(blue_x,blue_y). Đối với data_b, thực hiện tương tự nhưng với red_x và red_y. Sau đó, sử dụng hàm write() đã được viết sẵn và thêm các biến data_a và data_b để ghi chép chúng lại.
Bây giờ, khi các bàn làm việc bên dưới đã được xử lý, hãy đi tới dấu X tối trên thảm màu tím, tạo một biến có tên comparison và sử dụng nó với hàm math.isclose(), sử dụng data_a và data_b làm đối số, như sau: comparison = math.isclose(data_a, data_b). Sử dụng hàm write() đã được viết sẵn với biến comparison tại dấu X này.
Di chuyển đến dấu X trên thảm màu trắng, tạo một danh sách có tên data_list và thêm data_a cùng data_b theo thứ tự đó. Tạo một biến có tên total và sử dụng hàm math.fsum() với data_list làm đối số, như sau: total = math.fsum(data_list). Sử dụng biến total với hàm write() đã được viết sẵn tại dấu X này.
Di chuyển đến dấu X tối trên thảm màu vàng và hướng về bàn làm việc, chuyển đổi data_a và data_b thành các giá trị dạng danh sách riêng lẻ, ví dụ, đối với data_a thực hiện: data_a = [data_a]. Thực hiện tương tự với data_b để chuyển đổi cả hai biến thành các đối tượng có thể lặp được nhằm sử dụng với hàm math.dist(). Tạo một biến có tên distance và sử dụng nó để lưu trữ giá trị của math.dist(), sử dụng data_a và data_b làm đối số. Sử dụng biến distance với hàm write() đã được viết sẵn nhằm hoàn thành cấp độ.