08 / 59

Python if...else Statement

Shartli operatorlar bilan tanishish

Pythonda if operatori berilgan shartga qarab kod blokini ishga tushirish yoki uni o'tkazib yuborish imkonini beradi. Bu bizga vaziyatga qarab turlicha javob beradigan dasturlar yaratish imkonini beradi.

Masalan, qimor o'ynash saytida foydalanuvchining yoshi 18 yoki undan katta bo'lgandagina uning kontentiga kirish huquqi berilishi kerak.

Python if operatori

Keling, oddiy if operatoridan boshlaymiz. Darsning davomida ifni else va elif operatorlari bilan ko'rib chiqamiz.

ifning sintaksisi:

kod
if shart:
    # Bu kod faqat shart True bo'lsagina ishga tushadi

Bu yerda shart — age >= 18 kabi True yoki False qiymatini beruvchi mantiqiy (boolean) ifoda.

ifning tanasi (undan pastdagi bir xil chekinishga ega kod bloki) shart True bo'lsa bajariladi, False bo'lsa o'tkazib yuboriladi.

Misol: Python if operatori

example.py
age = int(input("Enter your age: "))

# yosh 18 yoki undan katta ekanligini tekshirish
if age >= 18:
    print("Grant access to the website.")

print("Program complete.")

1-natija

kod
Enter your age: 22
Grant access to the website.
Program complete.

2-natija

kod
Enter your age: 17
Program complete.

Ko'rib turganingizdek, "Grant access..." xabari faqat age >= 18 shartiga ko'ra yosh 18 yoki undan katta bo'lgandagina chop etiladi.

"Program complete." xabari if operatoridan tashqarida (chekinishsiz). Shuning uchun u har safar bajariladi.

Eslatma: Bu dastur qadam-baqadam qanday ishlashini ko'rish uchun kod misollaridagi Visualize tugmasini bosing.

Pythonda chekinish (Indentation)

Python if operatorining tanasi kabi kod blokini belgilash uchun chekinishdan (indentation) foydalanadi. Keling, yuqoridagi kodni chekinishsiz yozib, nima bo'lishini ko'ramiz.

example.py
age = int(input("Enter your age: "))

if age >= 18:
print("Grant access to the website.")

print("Program complete.")

Natija

kod
  File "main.py", line 4
    print("Grant access to the website.")
    ^^^^^
IndentationError: expected an indented block after 'if' statement on line 3

Bu yerda Python if operatorini bo'sh tanaga ega deb hisoblaydi, chunki undan keyingi kod chekinishga ega emas. Xato sababi ham shu.

Agar if operatorining tanasiga bir nechta qator kod joylashtirmoqchi bo'lsangiz, bir xil chekinish darajasini saqlashingiz kerak. Masalan,

example.py
age = int(input("Enter your age: "))

if age >= 18:
    print("Grant access.")
    print("Show products.")

print("Program complete.")

Bu yerda print("Grant access.") va print("Show products.") ikkalasi ham if operatorining bir qismi.

Python if...else operatori

if operatori ixtiyoriy else operatoriga ega bo'lishi mumkin, u if operatoridagi shart False bo'lganda bajariladi. Bu shart True yoki False bo'lishiga qarab ikki xil kod blokini ishga tushirish imkonini beradi.

if...elsening sintaksisi:

kod
if shart:
    # Shart True bo'lsa shu kodni ishga tushirish
else:
    # Shart False bo'lsa shu kodni ishga tushirish

Misol: Python if...else operatori

example.py
age = int(input("Enter your age: "))

if age >= 18:
    print("Grant access.")
else:
    print("Deny access.")

1-natija

kod
Enter your age: 22
Grant access.

2-natija

kod
Enter your age: 16
Deny access.

else operatori oldingi shartlarga mos kelmagan hamma narsani ushlaydi.

Misol: if...else yordamida foydalanuvchini autentifikatsiya qilish

example.py
# Ma'lumotlar bazasida saqlangan foydalanuvchi nomi va parol
username_db = "admin"
password_db = "sparrow@123"

# Foydalanuvchi kiritgan foydalanuvchi nomi va parol
username = input("Enter username: ")
password = input("Enter password: ") 

# Ma'lumotlar bazasidagi foydalanuvchi nomi va parol foydalanuvchi kiritmasiga mos kelishini tekshirish
if (username == username_db) and (password == password_db):
    print("Welcome back.")
else:
    print("Access denied.")

Bu yerdagi mantiq shuki, agar foydalanuvchi kiritgan foydalanuvchi nomi va parol ma'lumotlar bazasida saqlangan ma'lumotga mos kelsa, bu haqiqiy (valid) kirish hisoblanadi.

Python if…elif…else operatori

if...else operatori ikkita muqobil variant orasidan bittasini bajarish uchun ishlatiladi.

Biroq, agar ikkitadan ortiq muqobil variant orasidan tanlov qilishimiz kerak bo'lsa, if...elif...else operatoridan foydalanishimiz mumkin.

Sintaksis

kod
if shart1:
    # shart1 True bo'lsa shu kodni ishga tushirish
elif shart2:
    # shart1 False, lekin shart2 True bo'lsa shu kodni ishga tushirish
else: 
    # shart1 va shart2 ikkalasi ham False bo'lsa shu kodni ishga tushirish

Misol: Python if…elif…else operatori

example.py
age = int(input("Enter your age: "))

if age < 0:
    print("Invalid age.")
elif age >= 18:
    print("Grant access.")
else:
    print("Deny access.")

1-natija

kod
Enter your age: -5
Invalid age.

2-natija

kod
Enter your age: 21
Grant access.

3-natija

kod
Enter your age: 14
Deny access.

Agar bu dasturga tushunishda qiynalayotgan bo'lsangiz, har bir qadamda aynan nima bo'layotganini ko'rish uchun yuqoridagi Visualize tugmasini bosing.

if operatori bir nechta elif operatoriga ega bo'lishi mumkin, lekin oxirida faqat bitta else operatoriga ega bo'lishi mumkin. Shuningdek, elifdan keyin else ishlatish shart emas. Yuqoridagi dasturni quyidagicha ham yozishimiz mumkin edi:

example.py
age = int(input("Enter your age: "))

if age < 0:
    print("Invalid age.")
elif age < 18:
    print("Deny access.")
elif age >= 18:
    print("Deny access.")

Ichma-ich if operatorlari (Nested if Statements)

if operatorini boshqasining ichiga joylashtirish mumkin, bu nested if (ichma-ich if) deb ataladi. Masalan,

example.py
age = int(input("Enter your age: "))

# Yosh 18 dan kichik ekanligini tekshirish sharti
if age < 18:

    # Agar yosh 18 dan kichik bo'lsa, u manfiy ekanligini tekshirish sharti
    if age < 0:
        print("Invalid age.")
    else:
        print("Deny access.")
else:
    print("Grant access.")

Bu dasturning natijasi yuqoridagi dasturlar bilan bir xil. Biroq, ichma-ich operatorlar mantiqni biroz murakkablashtiradi. Shuning uchun iloji boricha ichma-ich if operatorlaridan qochish yaxshiroq.

Agar bu dasturga tushunishda qiynalayotgan bo'lsangiz, har bir qadamda aynan nima bo'layotganini ko'rish uchun Visualize tugmasini bosing.

Qisqartirilgan if...else (Short Hand if...else)

Ba'zi hollarda oddiy if...elseni bitta qatorda yozishingiz mumkin. Masalan,

example.py
age = 22
status = "Adult" if age >= 18 else "Minor"
print(status)

Bu quyidagisi bilan barobardir:

example.py
age = 22

if age >= 18:
    status = "Adult"
else:
    status = "Minor"

Misol: Uchta sondan eng kattasi

n1, n2 va n3 orasidan eng kattasini topishning umumiy mantig'i quyidagicha:

  • Agar n1 n2 va n3 ikkalasidan ham katta bo'lsa, n1 eng katta.
  • Agar n2 n1 va n3 ikkalasidan ham katta bo'lsa, n2 eng katta.
  • Aks holda, n3 eng katta.
example.py
# Foydalanuvchidan kiritma olish
n1 = float(input("Enter the first number: "))
n2 = float(input("Enter the second number: "))
n3 = float(input("Enter the third number: "))

if n1 >= n2 and n1 >= n3:
    largest = n1
elif n2 >= n1 and n2 >= n3:
    largest = n2
else:
    largest = n3

print("The largest number is:", largest)

Natijani o'zingiz ko'rish uchun bu dasturni ishga tushiring va vizualizatsiya qiling.

QBilimingizni sinab ko'ring
1 / 3

1. if operatorining tanasi (bir xil chekingan kod bloki) shart False bo'lsa nima bo'ladi?