Angka dan aritmetika
Dalam Python 3, 7 / 2 menghasilkan 3.5, 7 // 2 menghasilkan 3, dan 7 % 2 menghasilkan sisa 1.
Tebak empat pembagian sebelum membaca lebih lanjut
Tutup keluaran di bawah dan tulis perkiraan hasil cetak setiap baris. Kebanyakan orang menjawab yang pertama dengan benar dan setidaknya salah pada salah satu lainnya. Tebakan keliru itulah titik awal unit ini.
print(7 / 2)
print(8 / 2)
print(7 // 2)
print(7 % 2)3.5
4.0
3
1Baris kedua sering mengejutkan. 8 / 2 tepat bernilai 4, tetapi Python mencetak 4.0. Sebabnya, / selalu menghasilkan float, angka dengan titik desimal, meskipun pembagiannya habis. Jika menginginkan pembagian bilangan bulat, Python memiliki operator tersendiri, //, yang disebut pembagian lantai. Operator ini membagi lalu membulatkan ke bawah ke bilangan bulat. Pasangannya, %, memberikan sisa pembagian. Keduanya menjawab pertanyaan sekolah dasar "7 dibagi 2 adalah 3, sisa 1".
% digunakan lebih luas daripada yang mungkin kamu duga. Bilangan genap jika n % 2 bernilai 0. Digit terakhir bilangan adalah n % 10. Mengubah 135 menit menjadi jam dan menit dilakukan dengan 135 // 60 jam dan 135 % 60 menit.
minutes = 135
print(minutes // 60, "h", minutes % 60, "min")
print(2026 % 2, 2027 % 2)
print(4589 % 10)2 h 15 min
0 1
9Operator lain dan urutan yang digunakan Python
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
| + | tambah | 7 + 2 | 9 |
| - | kurang | 7 - 2 | 5 |
| * | kali | 7 * 2 | 14 |
| / | bagi (float) | 7 / 2 | 3.5 |
| // | pembagian lantai | 7 // 2 | 3 |
| % | sisa pembagian | 7 % 2 | 1 |
| ** | pangkat | 7 ** 2 | 49 |
Python mengikuti urutan yang sama dengan pelajaran matematika: ** lebih dahulu, lalu *, /, //, dan %, kemudian + dan -, dari kiri ke kanan dalam setiap kelompok. Kurung didahulukan dari semuanya, jadi tambahkan jika ragu. Tidak ada ruginya, dan maksud kode menjadi jelas bagi pembaca berikutnya.
print(2 + 3 * 4)
print((2 + 3) * 4)
print(2 ** 10)
print(10_000 * 3)14
20
1024
30000Pada baris terakhir ada kemudahan kecil: Python mengizinkan garis bawah dalam bilangan panjang, sehingga 10_000 lebih mudah dibaca daripada 10000. Garis bawah diabaikan saat angka dihitung dan tidak muncul pada keluaran. Koma tidak dapat digunakan dengan cara itu karena koma sudah berarti "nilai berikutnya".
Desimal disimpan dalam biner, sehingga beberapa hasil sedikit meleset
Coba 0.1 + 0.2. Dalam tutorial Python, ada satu bab penuh yang menjelaskan mengapa jawabannya 0.30000000000000004, bukan 0.3. Float disimpan dalam biner, dan 0.1 tidak memiliki bentuk biner yang tepat, seperti 1/3 tidak memiliki bentuk desimal yang tepat. Kesalahannya sangat kecil, dan round() menyembunyikannya saat dicetak. Perhatikan bahwa round() membulatkan nilai yang tepat di tengah ke bilangan genap terdekat: pada halaman fungsi bawaan, round(0.5) menghasilkan 0 dan round(1.5) menghasilkan 2. Untuk uang dalam won utuh atau sen utuh, simpan jumlahnya sebagai int agar masalah ini tidak muncul.
print(0.1 + 0.2)
print(round(0.1 + 0.2, 2))
print(round(0.5), round(1.5), round(2.5))
print(int(3.99), float(7))0.30000000000000004
0.3
0 2 2
3 7.0input() selalu menghasilkan string
input() menampilkan prompt, menunggu pengguna mengetik sesuatu dan menekan Enter, lalu mengembalikan ketikannya sebagai string. Meskipun yang diketik 15, kamu mendapat "15", yaitu teks. Untuk menghitungnya, ubah dengan int() atau float(). int() pada float memotong bagian desimal, bukan membulatkan, sehingga int(3.99) adalah 3.
age = input("How old are you? ")
next_year = int(age) + 1
print("Next year you will be", next_year)How old are you? 14
Next year you will be 15| / | Pembagian yang selalu menghasilkan float: 8 / 2 adalah 4.0 |
| // | Pembagian lantai: 7 // 2 adalah 3 |
| % | Sisa pembagian: 7 % 2 adalah 1 |
| ** | Pangkat: 2 ** 3 adalah 8 |
| int() | Mengubah "15" atau 3.9 menjadi bilangan bulat (15, 3) |
| input() | Membaca satu baris ketikan pengguna sebagai string |
| round(x, n) | Membulatkan hingga n angka desimal; nilai tepat di tengah dibulatkan ke bilangan genap |
- Apa yang dicetak kode ini?
print(9 / 3) - Apa yang dicetak kode ini?
print(17 // 5, 17 % 5) - Apa yang dicetak kode ini?
print(2 + 3 * 4 ** 2) - Apa yang dicetak kode ini?
print(2 ** 3) - Apa yang dicetak kode ini?
print(2 ^ 3)861Kesalahan
- Apa yang dicetak kode ini?
print(int("20") + 5) - Apa yang dicetak kode ini?
print("20" + "5") - Apa yang dicetak kode ini?
print(int(7.9)) - Apa yang dicetak kode ini?
print(round(2.5)) - Harga satu roti gulung 3500 won dan kamu memiliki 10 000 won. Apa yang dicetak kode ini?
won = 10000 price = 3500 print(won // price, won % price) - Ekspresi mana yang memeriksa apakah n genap?
- n / 2 == 0
- n // 2 == 0
- n % 2 == 0
- n ** 2 == 0
- "2 ^ 3 adalah 8." Dalam Python, ^ adalah operator bitwise dan 2 ^ 3 bernilai 1. Pangkat menggunakan **, sehingga 2 ** 3 bernilai 8. Program berjalan tanpa kesalahan, sehingga kekeliruan ini sulit ditemukan.
- "input() memberiku angka jika aku mengetik angka." Hasilnya selalu string. "14" + 1 berhenti dengan TypeError: can only concatenate str (not "int") to str. Ubah terlebih dahulu dengan int(input(...)).
- "0.1 + 0.2 == 0.3 adalah True." Hasilnya False karena 0.1 + 0.2 adalah 0.30000000000000004. Bandingkan nilai yang dibulatkan, seperti round(0.1 + 0.2, 2) == 0.3, atau hitung dalam satuan utuh (won, sen) menggunakan int.
- / selalu menghasilkan float; // memberikan hasil bagi bulat; % memberikan sisa.
- ** adalah pangkat; ^ bukan.
- Urutan: kurung, **, lalu * / // %, kemudian + -.
- 0.1 + 0.2 adalah 0.30000000000000004; simpan uang sebagai int.
- input() mengembalikan string; ubah dengan int() atau float().
Sumber kursus ini (6)
- Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
- Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
- Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
- General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
- Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
- Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)
Diperiksa: 2026-10-19