Pelajaran modul (3/4)
Angka dan modul matematika
Python membedakan dua tipe numerik mendasar: int (presisi sewenang-wenang
bilangan bulat — tanpa luapan) dan float (titik mengambang 64-bit, ganda
presisi).
type(42) # <class 'int'>
type(3.14) # <class 'float'>
type(10 ** 100) # <class 'int'> — interi grandi a piacereOperator aritmatika
| Operasi | Arti | Contoh | Hasil |
|---|---|---|---|
+ | tambahan | 2 + 3 | 5 |
- | pengurangan | 5 - 2 | 3 |
* | produk | 4 * 3 | 12 |
/ | benar pembagian | 10 / 4 | 2.5 |
// | pembagian bilangan bulat | 10 // 4 | 2 |
% | modulo (sisa) | 10 % 3 | 1 |
** | kekuatan | 2 ** 10 | 1024 |
Peringatan: / selalu mengembalikan float, bahkan dengan dua bilangan bulat (10 / 2
mengembalikan 5.0, bukan 5). Untuk pembagian bilangan bulat gunakan //.
10 / 4 # 2.5
10 // 4 # 2
-7 // 2 # -4 (arrotonda verso il basso, non verso lo zero)Bawaan numerik
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]) # 6Modul 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) # 6Jebakan pelampung
Float adalah perkiraan biner: 0.1 + 0.2 tidak sama persis
0.3.
0.1 + 0.2 # 0.30000000000000004
0.1 + 0.2 == 0.3 # False !Untuk perbandingan yang aman gunakan math.isclose(a, b) atau, dalam konteks keuangan,
Modul decimal.
Presisi mengambang dan modul desimal
Float dengan Python diimplementasikan sebagai bilangan floating-point presisi ganda (standar IEEE 754). Akibatnya, penghitungan seperti 0.1 + 0.2 tidak menghasilkan persis 0.3, melainkan 0.30000000000000004. Jika Anda memerlukan ketepatan matematika absolut (misalnya untuk aplikasi keuangan), gunakan modul decimal perpustakaan standar.
Cobalah
Diberikan `detik = 3725`, hitung `jam`, `menit`, `sisa_detik` menggunakan // dan %. Evaluasi tuple `(jam, menit, sisa_detik)`.
Tunjukkan petunjuk
// melakukan pembagian bilangan bulat, % sisanya.
Solusi tersedia setelah 3 upaya
Tinjau latihan
Diketahui `radius = 5`, hitung luas lingkaran di `luas` menggunakan math.pi. Evaluasi `area` yang dibulatkan menjadi 2 desimal dengan pembulatan.
Tunjukkan petunjuk
matematika.pi * radius ** 2
Solusi tersedia setelah 3 upaya
Tantangan tambahan
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.
Tunjukkan petunjuk
matematika.sqrt(16) mengembalikan 4.0. round(3.74) mengembalikan 4. Jumlahkan dan tetapkan ke total_val.
Solusi tersedia setelah 3 upaya