Membuat kondisi kompleks dengan operator logis (dan, atau, tidak)

Selesai

Tip

Lihat tab Teks dan gambar untuk detail selengkapnya!

Terkadang satu kondisi tidak cukup untuk membuat keputusan. Anda mungkin ingin memeriksa apakah dua hal itu benar, atau apakah setidaknya salah satunya benar. Misalnya, Anda mungkin perlu memverifikasi apakah akun aktif dan didanai, atau jika pengguna adalah admin atau moderator.

operator logis Python memungkinkan Anda menggabungkan beberapa kondisi ke dalam satu ekspresi.

Tiga operator logis

Operator Apa fungsinya Example Result
and True hanya jika kedua belah pihak True True and False False
or True jika setidaknya satu sisi True True or False True
not Membalikkan nilai Boolean not True False

Menggunakan dan (semua kondisi harus dipenuhi)

Gunakan and ketika semua kondisi harus terpenuhi untuk menjalankan blok kode:

age = 20
has_ticket = True

if age >= 18 and has_ticket:
    print("Entry granted.")
else:
    print("Entry denied.")

Output:

Entry granted.

Menggunakan atau (setidaknya satu kondisi harus terpenuhi)

Gunakan or ketika satu kondisi sudah cukup untuk menjalankan blok kode. Dalam bahasa sehari-hari, biasanya "atau" berarti "satu atau yang lain, tetapi tidak keduanya." Namun, dalam Python, "atau" berarti "satu atau yang lain, atau keduanya."

is_weekend = False
is_holiday = True

if is_weekend or is_holiday:
    print("The office is closed.")

Output:

The office is closed.

Menggunakan tidak (membalikkan kondisi)

Operator not membalikkan nilai Boolean. Jika kondisinya adalah True, itu menjadi False, dan sebaliknya. Operator ini berguna ketika Anda ingin memeriksa tidak adanya kondisi.

is_logged_in = False

if not is_logged_in:
    print("Please log in to continue.")

Output:

Please log in to continue.

Menggabungkan operator

Anda dapat menggabungkan and, or, dan not dalam satu ekspresi. Selalu gunakan tanda kurung untuk mengelompokkan kondisi dan membuat kode Anda lebih mudah dibaca:

score = 85
has_extra_credit = True
is_past_due = False

# Example: Pass if (Score is high OR extra credit is earned) AND the work isn't late
if (score >= 90 or has_extra_credit) and not is_past_due:
    print("Requirement met.")

Hindari kesalahan pintasan

Saat membandingkan satu variabel dengan beberapa nilai, Anda mungkin tergoda untuk menulis sesuatu seperti ini:

# Incorrect: This code will not work as intended
if score == 90 or 100:
    print("You got an A!")

Dalam hal ini, Python mengevaluasi score == 90 terlebih dahulu, yaitu True atau False. Kemudian mengevaluasi 100, yang selalu True. Angka bukan nol dan string tidak kosong selalu dihitung seperti True dalam Python. Akibatnya, kondisinya selalu True, terlepas dari scorenilai . Selalu bandingkan setiap nilai secara eksplisit:

# Correct: Each value is compared explicitly
if score == 90 or score == 100:
    print("You got an A!")