Bài học theo mô-đun (3/4)
Mô-đun số và toán học
Python phân biệt hai loại số cơ bản: int (độ chính xác tùy ý
số nguyên - không tràn) và float (dấu phẩy động 64 bit, gấp đôi
độ chính xác).
type(42) # <class 'int'>
type(3.14) # <class 'float'>
type(10 ** 100) # <class 'int'> — interi grandi a piacereToán tử số học
| Op | Ý nghĩa | Ví dụ | Kết quả |
|---|---|---|---|
+ | cộng | 2 + 3 | 5 |
- | phép trừ | 5 - 2 | 3 |
* | sản phẩm | 4 * 3 | 12 |
/ | đúng phép chia | 10 / 4 | 2.5 |
// | chia số nguyên | 10 // 4 | 2 |
% | modulo (phần dư) | 10 % 3 | 1 |
** | quyền lực | 2 ** 10 | 1024 |
Cảnh báo: / luôn trả về float, ngay cả với hai số nguyên (10 / 2
trả về 5.0 chứ không phải 5). Để chia số nguyên, hãy sử dụng //.
10 / 4 # 2.5
10 // 4 # 2
-7 // 2 # -4 (arrotonda verso il basso, non verso lo zero)Tích hợp số
abs(-5) # 5
min(3, 1, 2) # 1
max([3, 1, 2]) # 3 (su iterabile)
round(3.7) # 4
round(3.14159, 2) # 3.14
sum([1, 2, 3]) # 6Mô-đun math
import math
math.pi # 3.141592653589793
math.sqrt(16) # 4.0
math.floor(3.9) # 3 (verso meno infinito)
math.ceil(3.1) # 4 (verso più infinito)
math.log(math.e) # 1.0
math.gcd(12, 18) # 6Cạm bẫy phao
Số thực là xấp xỉ nhị phân: 0.1 + 0.2 không hoàn toàn bằng nhau
0.3.
0.1 + 0.2 # 0.30000000000000004
0.1 + 0.2 == 0.3 # False !Để so sánh an toàn, hãy sử dụng math.isclose(a, b) hoặc, trong bối cảnh tài chính,
decimal mô-đun.
Độ chính xác nổi và mô-đun thập phân
Số float trong Python được triển khai dưới dạng số dấu phẩy động có độ chính xác kép (tiêu chuẩn IEEE 754). Do đó, các phép tính như 0.1 + 0.2 không mang lại chính xác 0.3 mà là 0.30000000000000004. Nếu bạn yêu cầu độ chính xác toán học tuyệt đối (ví dụ: đối với các ứng dụng tài chính), hãy sử dụng mô-đun decimal của thư viện chuẩn.
Hãy thử nó
Cho `giây = 3725`, hãy tính `giờ`, `phút`, `giây_giây` còn lại bằng cách sử dụng // và %. Đánh giá bộ dữ liệu `(giờ, phút, còn lại_giây)`.
Hiển thị gợi ý
// thực hiện phép chia số nguyên, % số dư.
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Cho `bán kính = 5`, hãy tính diện tích hình tròn trong `diện tích` bằng math.pi. Đánh giá `diện tích` được làm tròn đến 2 số thập phân có làm tròn.
Hiển thị gợi ý
math.pi * bán kính ** 2
Giải pháp khả dụng sau 3 lần thử
Thử thách bổ sung
Import the `math` module. Calculate the square root of `16` using `math.sqrt`, add the result to the rounded value of `3.74` (using `round()`), and store the final sum in `total_val`. Finally, evaluate the variable.
Hiển thị gợi ý
math.sqrt(16) trả về 4.0. round(3.74) trả về 4. Tính tổng chúng và gán cho Total_val.
Giải pháp khả dụng sau 3 lần thử