Asosiy qismga o‘tish

6. Sikllar: for va range

Nazariya

for va range

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

range uch ko‘rinishda:

YozuvQiymatlar
range(5)0, 1, 2, 3, 4
range(2, 6)2, 3, 4, 5
range(0, 10, 2)0, 2, 4, 6, 8
range(5, 0, -1)5, 4, 3, 2, 1

Oxirgi son kirmaydi — bu boshda chalkashtiradi, lekin qulay:
range(n) aynan n ta qiymat beradi.

To‘plovchi o‘zgaruvchi

Sikldan oldin boshlang‘ich qiymat qo‘yiladi, sikl ichida yangilanadi:

yigindi = 0
for son in sonlar:
    yigindi += son

Maksimum uchun boshlang‘ich qiymat — birinchi element (nol emas!
sonlar manfiy bo‘lishi mumkin):

eng_katta = sonlar[0]
for son in sonlar:
    if son > eng_katta:
        eng_katta = son

To‘g‘ridan-to‘g‘ri elementlar bo‘yicha

for harf in "salom":
    print(harf)

for son in [3, 1, 4]:
    print(son)

Indeks ham kerak bo‘lsa:

for i, son in enumerate(sonlar):
    print(i, son)

Ichma-ich sikllar

for i in range(3):
    for j in range(3):
        print(i, j)

Bu 3 × 3 = 9 marta bajariladi. Ichma-ich sikl tez o‘sadi: n ta
element ustidagi ikkita sikl n² amal degani.

Misol

n = int(input())
a = list(map(int, input().split()))
eng_katta = a[0]
for son in a:
    if son > eng_katta:
        eng_katta = son
print(eng_katta)

Mashq masalalari

Nazorat savollari

1 `range(3)` nechta qiymat beradi? Bitta to‘g‘ri javob
2 Nima chiqadi? Kod nima chiqaradi
for i in range(2, 5):
    print(i, end=' ')
3 Nima chiqadi? Kod nima chiqaradi
s = 0
for i in range(1, 5):
    s += i
print(s)
4 Massivdagi maksimumni topishda boshlang‘ich qiymat nima bo‘lishi kerak? Bitta to‘g‘ri javob
5 `range(5, 0, -1)` teskari tartibda 5, 4, 3, 2, 1 qiymatlarini beradi. To‘g‘ri yoki noto‘g‘ri
6 Indeks bilan birga elementni olish uchun qaysi funksiya ishlatiladi? Bo‘sh joyni to‘ldirish
for i, son in ____(sonlar):
    print(i, son)
7 Qaysilari `for` sikli bilan yurish mumkin bo‘lgan obyektlar? Bir nechta to‘g‘ri javob

Bir nechta javob to‘g‘ri bo‘lishi mumkin.

8 Ichma-ich ikkita `for i in range(n)` sikli jami necha marta bajariladi? (n orqali yozing) Qisqa javob — yoziladi
9 Nima chiqadi? Kod nima chiqaradi
for harf in 'abc':
    print(harf, end='')
10 `for i in range(0, 10, 3)` qaysi qiymatlarni beradi? Bitta to‘g‘ri javob

Javoblar serverda tekshiriladi. Katta-kichik harf, apostrof shakli va ortiqcha bo‘shliq ahamiyatsiz.