{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Topshiriqlar 1 (`for` operatori)\n", "\n", "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).\n", "\n", "## 1. Boshlang‘ich mashqlar\n", "\n", "1. `fruits = ['olma', 'banan', 'anor', 'uzum']` ro‘yxatini `for` bilan aylanib chiqing va har bir meva nomini alohida satrga chop eting.\n", "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.\n", "3. `nums = [3, 1, 4, 1, 5, 9]` ro‘yxatidagi sonlarning kvadratlarini yangi ro‘yxatga yig‘ing va natijani chop eting.\n", "4. `nums` ro‘yxatidagi juft sonlar sonini sanang.\n", "5. `nums` ro‘yxatidagi sonlar yig‘indisini hisoblang (start qiymat 0 bo‘lsin).\n", "\n", "## 2. `range()` bilan ishlash\n", "\n", "6. 1 dan 100 gacha (ikkala chegara ham kirsin) bo‘lgan sonlardan faqat 7 ga bo‘linadiganlarini chop eting.\n", "7. 1 dan `n` gacha bo‘lgan sonlarning yig‘indisini toping (`n` ni foydalanuvchidan oling).\n", "8. 1 dan `n` gacha bo‘lgan juft va toq sonlar yig‘indisini alohida hisoblang.\n", "9. `n` berilgan. 1 dan `n` gacha bo‘lgan sonlar orasida nechta tub son borligini toping (oddiy tekshiruv bilan).\n", "\n", "## 3. `break`, `continue`, `else`\n", "\n", "10. `fruits` ro‘yxatida `\"banan\"` uchraganda takrorlashni to‘xtating (`break`). `break` ishlagan/ishlamagan holatda `for-else` qanday ishlashini ko‘rsating.\n", "11. 1 dan 30 gacha bo‘lgan sonlar orasida 3 ga bo‘linadiganlarni tashlab ketib (`continue`), qolganlarini chop eting.\n", "12. 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.\n", "\n", "## 4. `zip()` va `enumerate()`\n", "\n", "13. `names = ['Ali', 'Vali', 'Guli']` va `ages = [18, 20, 19]` berilgan. `zip()` yordamida `\"Ali - 18\"` ko‘rinishida chiqaring.\n", "14. `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]`.\n", "15. `students = ['A', 'B', 'C', 'D']` ro‘yxatini `enumerate(..., start=1)` bilan aylanib, `1-A` ko‘rinishida chiqarib bering.\n", "\n", "## 5. Ichma-ich `for` (nested loops)\n", "\n", "16. 1 dan 9 gacha ko‘paytirish jadvalini (9x9) chop eting. Har bir qator bir xil formatda chiqsin.\n", "17. `n` berilgan. Quyidagi shaklni chop eting (`*` lar soni qatordan qatorga oshib boradi):\n", "\n", " ```\n", " *\n", " **\n", " ***\n", " ....\n", " ```\n", "\n", "18. 2D ro‘yxat berilgan: `X = [[1,2,3],[4,5,6]]`. Ichma-ich `for` bilan barcha elementlarni ketma-ket chop eting.\n", "19. 2D ro‘yxat `X` uchun har bir qatordagi elementlar yig‘indisini alohida ro‘yxatga yozing (masalan: `[6, 15]`).\n", "\n", "## 6. Amaliy masalalar\n", "\n", "20. `text` satr berilgan. Undagi harflar (`isalpha()`), raqamlar (`isdigit()`) va boshqa belgilar sonini alohida sanang.\n", "21. 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`).\n", "22. `nums` ro‘yxatida eng katta va eng kichik elementni `for` yordamida toping (tayyor `min/max` ishlatmasdan).\n", "23. `nums` ro‘yxatida ketma-ket bir xil qiymatlar sonini hisoblang (masalan, `[1,1,2,2,2,3]` da ketma-ket takrorlar sonini toping).\n", "24. `n` berilgan. Fibonacci ketma-ketligining dastlabki `n` ta hadini `for` bilan hosil qiling.\n" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 5 }