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.
Keling, oddiy if operatoridan boshlaymiz. Darsning davomida ifni else va elif operatorlari bilan ko'rib chiqamiz.
ifning sintaksisi:
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
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
Enter your age: 22
Grant access to the website.
Program complete.
2-natija
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.
Python if operatorining tanasi kabi kod blokini belgilash uchun chekinishdan (indentation) foydalanadi. Keling, yuqoridagi kodni chekinishsiz yozib, nima bo'lishini ko'ramiz.
age = int(input("Enter your age: "))
if age >= 18:
print("Grant access to the website.")
print("Program complete.")
Natija
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,
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.
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:
if shart:
# Shart True bo'lsa shu kodni ishga tushirish
else:
# Shart False bo'lsa shu kodni ishga tushirish
Misol: Python if...else operatori
age = int(input("Enter your age: "))
if age >= 18:
print("Grant access.")
else:
print("Deny access.")
1-natija
Enter your age: 22
Grant access.
2-natija
Enter your age: 16
Deny access.
else operatori oldingi shartlarga mos kelmagan hamma narsani ushlaydi.
Misol: if...else yordamida foydalanuvchini autentifikatsiya qilish
# 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.
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
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
age = int(input("Enter your age: "))
if age < 0:
print("Invalid age.")
elif age >= 18:
print("Grant access.")
else:
print("Deny access.")
1-natija
Enter your age: -5
Invalid age.
2-natija
Enter your age: 21
Grant access.
3-natija
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:
age = int(input("Enter your age: "))
if age < 0:
print("Invalid age.")
elif age < 18:
print("Deny access.")
elif age >= 18:
print("Deny access.")
if operatorini boshqasining ichiga joylashtirish mumkin, bu nested if (ichma-ich if) deb ataladi. Masalan,
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.
Ba'zi hollarda oddiy if...elseni bitta qatorda yozishingiz mumkin. Masalan,
age = 22
status = "Adult" if age >= 18 else "Minor"
print(status)
Bu quyidagisi bilan barobardir:
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:
n1 n2 va n3 ikkalasidan ham katta bo'lsa, n1 eng katta.n2 n1 va n3 ikkalasidan ham katta bo'lsa, n2 eng katta.n3 eng katta.# 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.