For sikli bilan tanishish
Pythonda for operatori ro'yxatlar, satrlar va lug'atlar kabi har qanday iterable (aylanib chiqish mumkin bo'lgan) obyekt bo'ylab aylanib chiqish uchun ishlatiladi.
for element in ketma-ketlik:
# Shu kod blokini ishga tushirish
Yuqoridagi kodni shunday o'qing: ketma-ketlikdagi har bir element uchun shu kod blokini ishga tushiring.
Misol: Ro'yxat bo'ylab aylanib chiqish
Keling, uchta elementdan iborat ro'yxat bo'ylab aylanib chiqamiz:
# Uchta AI modeldan iborat ro'yxat
models = ["Fable", "ChatGPT", "Gemini"]
# Ro'yxat elementlariga birma-bir kirish
for model in models:
print(model)
print("---")
Natija
Fable
---
ChatGPT
---
Gemini
---
Yuqoridagi kodni shunday o'qing: models ro'yxatidagi har bir model uchun shu kodni ishga tushiring:
print(model)
print("---")
models ro'yxati uchta elementga ega bo'lgani uchun, modelning qiymati quyidagicha bo'ladi:
"Fable"."ChatGPT"."Gemini".Eslatma: Agar dasturni kuzatish qiyin bo'lsa, har qanday kod misoli ostidagi Visualize tugmasini bosib, kodni qatordan-qatorga ishga tushiring va har bir qadamda nima bo'lishini ko'ring.
Chekinish (operator boshidagi bo'shliqlar) Python sintaksisining bir qismi. Biz chekinishdan siklning tanasi kabi kod blokini belgilash uchun foydalanamiz. Masalan,
numbers = [1, 2, 3]
for num in numbers:
print(f"Processing: {num}")
print(f"Done with: {num}")
# Bu operator sikldan tashqarida
print('All done')
Natija
Processing: 1
Done with: 1
Processing: 2
Done with: 2
Processing: 3
Done with: 3
All done
Bu yerda print('All done') sikldan tashqarida. Shuning uchun bu operator faqat oxirida bir marta bajariladi.
Dasturlashda keng tarqalgan vazifalardan biri kodni ma'lum bir marta (masalan, 10 marta) takrorlash. Masalan, 100 ta mahsulotdan iborat ro'yxatdan sahifada 10 ta mahsulotni ko'rsatish.
Bunday vazifalarni for sikli ichida range() funksiyasidan foydalanib bajarishingiz mumkin. Buning sababi, range() funksiyasi sonlar ketma-ketligini qaytaradi. Masalan,
# 1 dan 4 gacha sonlarni generatsiya qilish
values = range(1, 5)
Bu yerda range(1, 5) 1, 2, 3 va 4 dan iborat ketma-ketlikni qaytaradi. range() funksiyasi sonlar ketma-ketligini qaytargani uchun, biz uning bo'ylab aylanib chiqishimiz mumkin. Masalan,
# i = 1 dan i = 10 gacha aylanib chiqish
for i in range(1, 11):
print(f"Displaying product {i}")
Natija
Displaying Product 1
Displaying Product 2
...
Displaying Product 10
Misol: Satr bo'ylab aylanib chiqish
Agar satr bo'ylab aylanib chiqsak, satrning har bir belgisini birma-bir olamiz.
language = 'Python'
for x in language:
print(x)
Natija
P
y
t
h
o
n
break va continue operatorlari sikllarning oqimini o'zgartirish uchun ishlatiladi.
break operatori
break operatori u uchraganida for siklini darhol tugatadi. Masalan,
for num in range(1, 11):
if num == 3:
break
print(num)
Natija
1
2
range(1, 11) 1 dan 10 gacha sonlar ketma-ketligini yaratadi. Biroq, num 3ga teng bo'lganda, break operatori bajariladi, bu esa siklni darhol tugatadi. Shuning uchun faqat 1 va 2 chop etiladi.
continue operatori
continue operatori siklning joriy iteratsiyasini o'tkazib yuboradi va keyingi iteratsiya bilan davom etadi. Masalan,
for num in range(1, 6):
if num == 3:
continue
print(num)
Natija
1
2
4
5
range(1, 6) 1 dan 5 gacha ketma-ketlik yaratadi. Biroq, num 3ga teng bo'lganda, continue operatori bajariladi, bu esa undan keyingi qolgan kodni o'tkazib yuborib, keyingi iteratsiyaga o'tadi. Shuning uchun natijada 3 ko'rsatilmaydi.
break va continue operatorlari haqida ko'proq ma'lumotni shu yerdan topishingiz mumkin.
for sikli ixtiyoriy else operatoriga ega bo'lishi mumkin. Bu xususiyat faqat Pythonga xos bo'lib, boshqa ko'pgina tillarda uchramaydi.
else operatori ichidagi kod sikl tugagandan so'ng bajariladi. Biroq, agar sikl break operatori yordamida tugatilgan bo'lsa, else bloki bajarilmaydi. Masalan,
stock = ['Laptop', 'Keyboard', 'Mouse']
order = input("Enter the product you want to buy: ")
for product in stock:
if product == order:
print(f"{order} is available. Adding to cart.")
break
else:
print(f"Sorry, {order} is out of stock.")
1-natija
Enter the product you want to buy: Laptop
Laptop is available. Adding to cart.
2-natija
Enter the product you want to buy: Monitor
Sorry, Monitor is out of stock.
Bu yerdagi mantiq:
break operatori siklni tugatadi va else ichidagi "omborda yo'q" xabari ko'rsatilmaydi.break operatoriga hech qachon duch kelinmaydi.Agar sikl ichida ketma-ketlik elementlaridan foydalanishni mo'ljallamayotgan bo'lsangiz, sikl o'zgaruvchisi sifatida _ (pastki chiziq) dan foydalanish tushunarliroq bo'ladi. Masalan,
# i = 0 dan 3 gacha aylanib chiqish
for _ in range(0, 4):
print("Hi")
Natija
Hi
Hi
Hi
Hi
Bu yerda sikl to'rt marta aylanadi va har bir iteratsiyada "Hi"ni chop etadi.
Misol: Natural sonlar yig'indisi
Endi for sikli qanday ishlashini bilganimizdan so'ng, keling, natural sonlar yig'indisini hisoblovchi qiziqarli dastur yarataylik.
Bu dasturda biz 1 dan 10 gacha bo'lgan sonlarning yig'indisini topamiz.
# Yig'indining boshlang'ich qiymati 0
total = 0
# i = 1 dan 10 gacha aylanib chiqish
for i in range(1, 11):
total += i # Har bir qadamda i ni total ga qo'shish
print(f"Total = {total}")
Natija
Total = 55
Bu yerda sikl i = 1 dan 10gacha aylanadi. Har bir iteratsiyada biz ining joriy qiymatini total o'zgaruvchisiga qo'shamiz. Yakuniy total — 1 dan 10 gacha bo'lgan sonlarning yig'indisi.
Yana bir bor, agar bu dasturni kuzatishda qiynalsangiz, har bir qadamda aynan nima bo'lishini ko'rish uchun yuqoridagi Visualize tugmasini bosing.
Sikl o'z ichida boshqa siklni ham o'z ichiga olishi mumkin, bu nested loop (ichma-ich sikl) deb ataladi. Ichma-ich siklda, ichki sikl tashqi siklning har bir iteratsiyasi uchun bir marta bajariladi.
attributes = ['Electric', 'Fast']
cars = ['Tesla', 'Porsche', 'Mercedes']
# Tashqi sikl
for attribute in attributes:
# Ichki sikl
for car in cars:
print(attribute, car)
# Bu operator ichki sikldan tashqarida
print("-----")
Natija
Electric Tesla
Electric Porsche
Electric Mercedes
-----
Fast Tesla
Fast Porsche
Fast Mercedes
-----