For AI agents: use /llms.txt for the Nakafa content index.
Prioritas operator menentukan cara Python mengelompokkan ekspresi ketika tanda kurung tidak menyatakannya secara eksplisit. Ini adalah aturan parsing, bukan jaminan bahwa setiap operand dievaluasi mengikuti urutan visual yang sama.
Operator dengan prioritas lebih tinggi mengikat operand lebih kuat. Sebagian besar operator biner pada level yang sama mengelompok dari kiri ke kanan, tetapi perpangkatan mengelompok dari kanan ke kiri dan perbandingan membentuk rantai. Gunakan tanda kurung jika pengelompokan yang dimaksud mungkin tidak langsung terbaca.
Operator perbandingan digunakan untuk membandingkan dua nilai dan menghasilkan nilai boolean (True atau False). Operator perbandingan yang tersedia dalam Python:
== sama dengan!= tidak sama dengan< kurang dari<= kurang dari atau sama dengan> lebih dari>= lebih dari atau sama denganOperator ini menghasilkan bool. Kesetaraan dapat membandingkan objek dari tipe berbeda, tetapi perbandingan urutan seperti < membutuhkan tipe yang mendefinisikan urutan kompatibel dan dapat menghasilkan TypeError jika tidak. Operator perbandingan berbagi satu level prioritas dan dapat dirangkai.
# Contoh penggunaan operator perbandingan
>>> 4 == 5
False
>>> 3 > 2.1 # Python mendukung perbandingan numerik campuran ini
TrueOperator boolean memungkinkan kamu menggabungkan beberapa kondisi atau memodifikasi nilai boolean. Python menyediakan tiga operator boolean utama:
Operator and mengembalikan nilai pertama jika bernilai false, atau nilai kedua jika nilai pertama bernilai true.
Operator or mengembalikan nilai pertama jika bernilai true, atau nilai kedua jika nilai pertama bernilai false.
Operator not berbeda dari operator and dan or karena selalu menghasilkan nilai boolean baru.
# Contoh operator boolean
>>> 4.0 and 5.0 # mengevaluasi 4.0 sebagai true, mengevaluasi 5.0 sebagai true, mengembalikan 5.0
5.0
>>> 0 and 5 # mengevaluasi 0 sebagai false, mengembalikan 0 (short-circuit)
0
>>> 4.0 or 5.0 # mengevaluasi 4.0 sebagai true, mengembalikan 4.0 (short-circuit)
4.0
>>> 0 or 5 # mengevaluasi 0 sebagai false, mengevaluasi 5 sebagai true, mengembalikan 5
5
>>> not 4.0 # mengevaluasi 4.0 sebagai true, mengembalikan False
False
>>> not 0 # mengevaluasi 0 sebagai false, mengembalikan True
TrueOperator and dan or menggunakan evaluasi short-circuit, yang berarti evaluasi berhenti ketika hasil sudah dapat ditentukan tanpa mengevaluasi semua operand. Keduanya mengembalikan argumen terakhir yang dievaluasi, sedangkan operator not selalu membuat nilai boolean baru.
Python memiliki aturan khusus untuk menentukan nilai mana yang dianggap False atau True dalam konteks boolean.
Nilai yang dianggap False (Falsy):
False itu sendiriNone (dari tipe NoneType)0 (integer nol)0.0 (float nol)0j (bilangan kompleks nol, dimana j adalah unit imajiner)""[], {}, (), set()Nilai yang dianggap True (Truthy):
Objek buatan sendiri dapat mengatur pengujian kebenaran melalui __bool__() atau __len__(). Jika keduanya tidak didefinisikan, instance tersebut dianggap truthy secara default.
Tipe bool dalam Python merepresentasikan nilai kebenaran False dan True, merupakan subtipe dari integer (int), dan boolean berperilaku seperti dan dalam operasi matematika.
# Konstruktor bool dan operasi aritmatika
>>> bool(-1)
True
>>> bool(0.0)
False
>>> True + True
2
>>> 3 * False
0Kamu dapat menggabungkan operator perbandingan dengan operator boolean untuk membuat kondisi yang lebih kompleks. Python juga memungkinkan rantai perbandingan yang lebih natural seperti 1 < 2 < 3.
# Contoh penggabungan operator
>>> 4.0 > 3 and 2 >= 3 # ⇔ True and False
False
>>> 7 < 6 or 4 != 2 # ⇔ False or True
True
>>> not 0 < 2 # ⇔ not (0 < 2) ⇔ not True
False
# Rantai perbandingan
>>> 1 < 2 < 3 # ⇔ (1 < 2) and (2 < 3)
True
>>> 5 <= 7 < 10 # ⇔ (5 <= 7) and (7 < 10) --- aplikasi: tes interval
TrueBanyak pecahan desimal tidak memiliki representasi floating-point biner berhingga yang persis. Operasi aritmetika membulatkan hasil antara, sehingga dua perhitungan yang setara secara matematis dapat menghasilkan float yang berdekatan tetapi tidak sama.
# Masalah presisi floating point
>>> a = 0.01
>>> b = 0.1**2 # b adalah 0.010000000000000002
>>> a == b
False
# Solusi dengan math.isclose()
>>> import math
>>> math.isclose(0.01, 0.1**2)
True
>>> math.isclose(100, 95, rel_tol=0.05) # toleransi relatif adalah 5%
True
>>> math.isclose(100, 95, abs_tol=5) # toleransi absolut adalah 5
TruePython menyediakan fungsi math.isclose(a, b, rel_tol=1e-09, abs_tol=0.0) untuk menguji kesetaraan aproksimasi. Fungsi ini menggunakan toleransi relatif (rel_tol) dan toleransi absolut (abs_tol) untuk menentukan apakah dua nilai cukup dekat.
Gunakan kesetaraan persis jika identitas nilai floating-point yang persis memang dibutuhkan. Untuk besaran hasil pengukuran atau perhitungan, pilih toleransi berdasarkan domain masalah dan gunakan
math.isclose(). Di dekat nol,abs_tolyang sesuai sangat penting karena toleransi relatif ikut mengecil bersama nilai yang dibandingkan.