Dars 02

Sikllar va ro'yxatlar

Amallarni takrorlash va kolleksiyalar bilan ishlash

O'tilgan mavzular

Dars 1 — asos

  • O'zgaruvchilar va ma'lumot turlari
  • print() va input()
  • Arifmetika va f-satrlar
  • Qiymatlarni solishtirish
  • Mantiqiy operatorlar
  • if / elif / else

Bugun

Sikllar va ro'yxatlar

while
for · range()
break · continue
ro'yxat yaratish
kesimlar va metodlar
kolleksiyalarni o'tish

Motivatsiya

Sikllar nima uchun kerak

Dastur shart bajarilgunicha yoki butun kolleksiyani o'tib bo'lguncha bir xil kod blokini ko'p marta bajaradi.

Siklsiz

Yuz qator kod

print("Salom") print("Salom") print("Salom") # ... × 100
Sikl bilan

Uch qator

for i in range(100): print("Salom")

Mavzu 14

while sikli

Shart rost bo'lguncha kod blokini takrorlaydi

i = 1 while i <= 5: print(i) i = i + 1
1 2 3 4 5
Tuzilish

Shart → blok → shartga qaytish. Shart yolg'on bo'lganda sikl tugaydi.

Bosqichma-bosqich

while qanday ishlaydi

Har takrorlash: shartni tekshirish → blokni bajarish → qaytish

i = 1 while i <= 5: print(i) i = i + 1
i i ≤ 5 print
1True1
2True2
3True3
4True4
5True5
6Falsechiqish

Misol

1 dan 10 gacha yig'indi

total = 0 i = 1 while i <= 10: total = total + i i = i + 1 print(total)
55

Akkumulyator-o'zgaruvchi shart bajarilgunicha natijani to'playdi.

Diqqat

Cheksiz sikl

Agar shart hech qachon yolg'on bo'lmasa, dastur qotib qoladi

i = 1 while i <= 5: print(i) # i ni oshirishni unutdik
Agar dastur qotib qolsa

Bajarilishni terminalda Ctrl + C orqali yoki Jupyter'dagi to'xtatish tugmasi bilan to'xtating.

Savol

Kod nima qaytaradi?

x = 5 while x > 0: print(x) x = x - 1
A1 2 3 4 5
B5 4 3 2 1
C5 4 3 2 1 0
DCheksiz sikl

Bir daqiqa o'ylab ko'ring →

Mavzu 15

for sikli

Oldindan ma'lum sondagi takrorlash

for i in range(5): print(i)
0 1 2 3 4

i o'zgaruvchisi ketma-ketlikdan qiymatlarni navbat bilan oladi.

Bosqichma-bosqich

for qanday ishlaydi

range() qiymatlarni beradi, sikl har biri uchun blokni bajaradi

for i in range(1, 6): print(i * i)
Takrorlash i i × i
111
224
339
4416
5525

Sikl ketma-ketlik tugaganda avtomatik to'xtaydi.

range()

range() qanday ishlaydi

Sonlar ketma-ketligini yaratadi

Chaqiruv Ketma-ketlik
range(5) 0, 1, 2, 3, 4
range(1, 6) 1, 2, 3, 4, 5
range(0, 10, 2) 0, 2, 4, 6, 8
range(10, 0, -1) 10, 9, 8, ..., 1
Eslatma

Yakuniy qiymat diapazonga kiritilmaydi. range(5) 0 dan 4 gacha sonlarni beradi.

Misol

for orqali yig'indi

total = 0 for i in range(1, 11): total = total + i print(total)
55

while-versiyasi bilan bir xil natija, lekin qisqaroq va hisoblagichni qo'lda boshqarmasdan.

Savol

Qachon for, qachon while ishlatamiz?

Afor - takrorlashlar soni oldindan ma'lum bo'lganda
Bwhile - ma'lum shart bajarilgunicha
CFaqat while - universal
DA va B variantlari ikkalasi ham to'g'ri

Bir daqiqa o'ylab ko'ring →

Mavzu 16

break va continue

Sikl ichidagi oqimni boshqarish

break

Sikldan chiqish

Siklni butunlay to'xtatadi. Qolgan barcha takrorlashlar o'tkazib yuboriladi.

continue

Keyingi takrorlash

Joriy takrorlashdagi qolgan kodni o'tkazib, keyingisiga o'tadi.

break

Sikldan chiqish

for i in range(10): if i == 5: break print(i)
0 1 2 3 4

i 5 ga teng bo'lganida sikl to'xtaydi. 5–9 raqamlari chiqmaydi.

continue

Takrorlashni o'tkazish

for i in range(10): if i % 2 == 0: continue print(i)
1 3 5 7 9

Juft raqamlar o'tkazib yuboriladi. Sikl print ni chetlab keyingi takrorlashga o'tadi.

Mavzu 17

Ro'yxatlar

Tartiblangan elementlar kolleksiyasi

numbers = [1, 2, 3, 4, 5] fruits = ["olma", "nok", "olxo'ri"] mixed = [1, "two", 3.0, True] empty = []
Eslatma

Ro'yxat turli ma'lumot turidagi elementlarni saqlay oladi. Elementlar tartibi saqlanadi.

Murojaat

Indeks orqali murojaat

Indekslash noldan boshlanadi

0"olma"-3
1"nok"-2
2"olxo'ri"-1
fruits = ["olma", "nok", "olxo'ri"] print(fruits[0]) # olma print(fruits[2]) # olxo'ri print(fruits[-1]) # olxo'ri (oxirgi) print(fruits[-2]) # nok (oxirgidan oldingi)

Kesimlar

Slicing

list[start:end:step] — yakuni kiritilmaydi

nums = [10, 20, 30, 40, 50] nums[1:3] # [20, 30] nums[:2] # [10, 20] nums[3:] # [40, 50] nums[::2] # [10, 30, 50] nums[::-1] # [50, 40, 30, 20, 10]

Kesim yangi ro'yxat qaytaradi. Asl ro'yxat o'zgarmaydi.

Mavzu 18

Asosiy metodlar

Metod Amal
list.append(x) Oxiriga element qo'shish
list.remove(x) x ning birinchi takrorini o'chirish
list.pop() Oxirgini o'chirib qaytarish
list.sort() Joyida saralash
list.reverse() Joyida teskariga o'girish
len(list) Uzunlik (bu funksiya)

Savol

Kod nima qaytaradi?

nums = [1, 2, 3, 4, 5] print(nums[1:4])
A[1, 2, 3]
B[2, 3, 4]
C[2, 3, 4, 5]
D[1, 2, 3, 4]

Bir daqiqa o'ylab ko'ring →

Mavzu 19

Kolleksiyalarni o'tish

for ro'yxat bo'yicha bevosita, indekssiz

fruits = ["olma", "nok", "olxo'ri"] for fruit in fruits: print(fruit)
olma nok olxo'ri

fruit o'zgaruvchisi ro'yxatning har bir elementini navbat bilan oladi.

Bonus

Satrni o'tish

Satr belgilar ketma-ketligi kabi ishlaydi

word = "Python" for letter in word: print(letter)
P y t h o n

Indeks orqali murojaat va kesimlar satrlar uchun ham ro'yxatlardagi kabi ishlaydi.

Amaliyot 1

Juft sonlar yig'indisi

15:00
  1. 1 Butun son N ni so'rang
  2. 2 for va range yordamida 1 dan N gacha o'ting
  3. 3 Yig'indiga faqat juft sonlarni qo'shing
  4. 4 Yakuniy yig'indini chiqaring

Maslahat: juftlik tekshiruvi i % 2 == 0 orqali.

Yechim

Yechim 1 ning tahlili

n = int(input("N sonini kiriting: ")) total = 0 for i in range(1, n + 1): if i % 2 == 0: total = total + i print(f"1 dan {n} gacha juft yig'indi: {total}")
N kiritish for sikli filtr % to'plash chiqarish

Amaliyot 2

Baholar tahlili

15:00
grades = [3, 5, 4, 2, 5, 4, 3, 5, 4, 5]
  1. 1 A'lo baholar (5) sonini hisoblang
  2. 2 O'rta arifmetik qiymatni hisoblang
  3. 3 Ikkala qiymatni chiqaring

Maslahat: sum(list) va len(list) vazifani osonlashtiradi.

Yechim

Yechim 2 ning tahlili

grades = [3, 5, 4, 2, 5, 4, 3, 5, 4, 5] excellent = 0 for grade in grades: if grade == 5: excellent = excellent + 1 average = sum(grades) / len(grades) print(f"A'lo baholar: {excellent}") print(f"O'rta ball: {average}")
ro'yxat hisoblagich sum / len chiqarish

Amaliy mashqlar

Jupyter Notebook

Dars mavzulari bo'yicha 10 ta vazifa. Jupyter yoki VS Code'da oching va mustaqil bajaring.

.ipynb
lesson2_tasks.ipynb
10 ta amaliy vazifa
Yuklab olish UZ Скачать RU Download EN

Xulosa

Dars yakunlari

  • while sikli va chiqish sharti
  • for sikli range() bilan
  • break va continue
  • Ro'yxat yaratish va murojaat
  • Kesimlar va qadamlar
  • Ro'yxat metodlari: append, remove, pop, sort
  • for orqali ro'yxatni o'tish
  • Satr ketma-ketlik sifatida
Keyingi dars

Funksiyalar va lug'atlar - kodni tashkil etish va «kalit-qiymat» tuzilmalari

Savollar?

Telegram: @gokalqurt

Python · Dars 2
RU UZ EN
1 / 31