Topshiriqlar 1 (for operatori)

Quyidagi mashqlar source/python3/for-loop.ipynb mavzulari asosida tuzilgan. Har bir masalada yechimni iloji boricha for operatori bilan yozing (zarur joyda if, break, continue, range, enumerate, zip dan foydalaning).

1. Boshlang‘ich mashqlar

  1. fruits = ['olma', 'banan', 'anor', 'uzum'] ro‘yxatini for bilan aylanib chiqing va har bir meva nomini alohida satrga chop eting.

  2. word = "dasturlash" satridagi harflarni for bilan aylanib, har bir harfni indeks raqami bilan birga chiqarib bering (masalan: 0:d, 1:a, …). enumerate dan foydalaning.

  3. nums = [3, 1, 4, 1, 5, 9] ro‘yxatidagi sonlarning kvadratlarini yangi ro‘yxatga yig‘ing va natijani chop eting.

  4. nums ro‘yxatidagi juft sonlar sonini sanang.

  5. nums ro‘yxatidagi sonlar yig‘indisini hisoblang (start qiymat 0 bo‘lsin).

2. range() bilan ishlash

  1. 1 dan 100 gacha (ikkala chegara ham kirsin) bo‘lgan sonlardan faqat 7 ga bo‘linadiganlarini chop eting.

  2. 1 dan n gacha bo‘lgan sonlarning yig‘indisini toping (n ni foydalanuvchidan oling).

  3. 1 dan n gacha bo‘lgan juft va toq sonlar yig‘indisini alohida hisoblang.

  4. n berilgan. 1 dan n gacha bo‘lgan sonlar orasida nechta tub son borligini toping (oddiy tekshiruv bilan).

3. break, continue, else

  1. fruits ro‘yxatida "banan" uchraganda takrorlashni to‘xtating (break). break ishlagan/ishlamagan holatda for-else qanday ishlashini ko‘rsating.

  2. 1 dan 30 gacha bo‘lgan sonlar orasida 3 ga bo‘linadiganlarni tashlab ketib (continue), qolganlarini chop eting.

  3. Foydalanuvchi kiritgan satr ichida birinchi raqam (0-9) uchragan joyda to‘xtab, o‘sha raqam va uning indeksini chiqaring. Agar raqam bo‘lmasa for-else orqali “raqam topilmadi” deb chiqaring.

4. zip() va enumerate()

  1. names = ['Ali', 'Vali', 'Guli'] va ages = [18, 20, 19] berilgan. zip() yordamida "Ali - 18" ko‘rinishida chiqaring.

  2. a = [1,2,3,4] va b = [10,20,30,40] berilgan. zip() yordamida elementma-element yig‘indi ro‘yxatini hosil qiling: [11,22,33,44].

  3. students = ['A', 'B', 'C', 'D'] ro‘yxatini enumerate(..., start=1) bilan aylanib, 1-A ko‘rinishida chiqarib bering.

5. Ichma-ich for (nested loops)

  1. 1 dan 9 gacha ko‘paytirish jadvalini (9x9) chop eting. Har bir qator bir xil formatda chiqsin.

  2. n berilgan. Quyidagi shaklni chop eting (* lar soni qatordan qatorga oshib boradi):

*
**
***
....
  1. 2D ro‘yxat berilgan: X = [[1,2,3],[4,5,6]]. Ichma-ich for bilan barcha elementlarni ketma-ket chop eting.

  2. 2D ro‘yxat X uchun har bir qatordagi elementlar yig‘indisini alohida ro‘yxatga yozing (masalan: [6, 15]).

6. Amaliy masalalar

  1. text satr berilgan. Undagi harflar (isalpha()), raqamlar (isdigit()) va boshqa belgilar sonini alohida sanang.

  2. Foydalanuvchi n kiritadi. 1 dan n gacha bo‘lgan sonlar orasidan eng katta kvadrati n dan oshmaydigan sonni toping (masalan, n=20 bo‘lsa, javob 4, chunki 4^2=16).

  3. nums ro‘yxatida eng katta va eng kichik elementni for yordamida toping (tayyor min/max ishlatmasdan).

  4. nums ro‘yxatida ketma-ket bir xil qiymatlar sonini hisoblang (masalan, [1,1,2,2,2,3] da ketma-ket takrorlar sonini toping).

  5. n berilgan. Fibonacci ketma-ketligining dastlabki n ta hadini for bilan hosil qiling.