Сикл (ҳалқа) –ҳои for ва while

Дарси 4
Нақша:
1. Синтаксиси асосии for
2. Ҳалқаи while
3. Ҳалқаҳои дохилӣ
4. Асосҳои ҳалқаи дохилӣ
Ҳалқаи for
Ҳалқаи for дар Python як воситаи пурқувватест барои такрори пайдарпайҳо ба монанди рӯйхатҳо, сатрҳо ё диапазони рақамҳо. Биёед ба таври муфассал истифода бурдани ҳалқаи for ва мафҳумҳои асосии онро дида бароем.
Синтаксиси асосии for:
- тағйирёбанда: тағирёбандаест, ки дар ҳар як такрор аз пайдарпай арзишҳо мегирад.
- пайдарпай: маҷмӯи маълумотест, ки такрор карда мешаванд.
Мисоли 1: Итератсия тавассути рӯйхат:
Дар ин мисол, тағирёбандаи fruit аз рӯйхати fruits дар ҳар як такрори сикл (ҳалқа) арзишҳоро мегирад ва онҳо дар экран чоп карда мешаванд.

Мисоли 2: Итератсия бо сатр:
Ҳалқаи for низ метавонад барои такрори аломатҳои сатр истифода шавад.

Мисоли 3: Итератсия рақамҳо:
Функсияи ragne(5) пайдарпайии рақамҳоро аз 0 то 4 тавлид мекунад ва даври for бо ин рақамҳо такрор мешавад.

Мисоли 4: Итератсия бо индексҳои элемент:
Функсияи enumerate() ба шумо имкон медиҳад, ки итератореро ба даст оред, ки ҷуфтҳои индекс ва арзишро баргардонад. Дар ин мисол, мо enumerate() –ро барои такрори рӯйхати «меваҳо», гирифтан ва чоп кардани индекс ва арзиш истифода мебарем.

Мисоли 5: Истифодаи оператори break:
Оператори break барои боздоштани иҷрои кор дар давра истифода мешавад. Дар ин мисол, ҳалқаи for рақамҳои аз 0 то 7 –ро чоп мекунад ва вақте ки тағйирёбандаи i ба 7 табдил меёбад, иҷрои фармоиш боздошта мешавад.

Мисоли 6: Истифодаи оператори continue:
Оператори continue барои гузаштан ба такрори навбатии давр истифода мешавад, ки қисми боқимондаи кодро дар итератсияи ҷорӣ гузаред. Дар ин мисол, ҳалқаи for танҳо рақамҳои тоқро аз 1 то 9 чоп мекунад ва рақамҳои ҷуфтро сарфи назар мекунад.
Ҳалқаи for имконоти зиёдеро барои коркарди самараноки маълумотҳо ва иҷрои амалҳо дар ҳар як элемент бо пайдарпайӣ таъмин мекунад. Ин як воситаи муҳим барои навиштани рамзи тоза дар Python мебошад.
Ҳалқаи while
Ҳалқаи while дар Python то он даме, ки шарт дуруст аст, блоки кодро иҷро мекунад. Ин намуди ҳалқа вақте муфид аст, ки шумораи ҳалқаҳо пешакӣ маълум нест ва аз шарт вобаста аст. Биёед ба асосҳо ва ҷанбаҳои гуногуни ҳалқаи while назар андозем.

Синтаксиси асосии ҳалқаи while:
шарт: Ифодаи мантиқӣ пеш аз ҳар як такрор санҷида мешавад. Агар дуруст бошад, иҷрои код идома меёбад ва агар нодуруст бошад, давра ба охир мерасад.

Мисоли 1: Ҳалқаи оддиӣ while:
Дар ин мисол, даври while то он даме, ки тағирёбандаи count камтар аз 50 бошад, кор хоҳад кард. Дар ҳар як такрор арзиши count чоп карда мешавад ва ба 1 зиёд мешавад.

Мисоли 2: Истифодаи оператори break дар даври while:
Ин мисол ҳалқаи while True -ро истифода мебарад, ин маънои онро дорад, ки он то абад яъне беохир давр хоҳад зад. Бо вуҷуди ин, бо истифода аз оператори break, ҳангоми count ба 5 расидан кори барнома боз дошта мешавад.

Мисоли 3: Истифодаи оператори continue дар даври while:
Дар ин мисол Ҳалқаи while рақамҳои тоқи аз 1 то 5 –ро бо истифода аз оператори continue дар экран чоп мекунад

Мисоли 4: Боздошти кори барнома аз иҷроишӣ беохир:
Ин мисол тафтиш мекунад ва барномаро аз иҷрои коди беохир боз медорад. Агар count аз 10 зиёд бошад, давра қатъ карда мешавад.

Мисоли 5: Истифодаи ҳалқаи while барои ворид кардани маълумот:
Ин мисол паролро аз истифодабаранда такроран талаб кардан мегирад то он даме, ки истифодабаранда пароли дурустро ворид кунад.

Мисоли 6: Муҳофизат аз вуруди нодуруст:
Ин мисол ҳалқаи беохирро бо блоки try ва except барои коркарди хатогиҳо ҳангоми ворид кардани адад истифода мебарад то он замоне, ки мо адади дурустро ворид накунем барнома аз мо такроран ворид кардани адади дурустро талаб мекунад
Ҳалқаи while як абзори пурқувват дар Python аст, ки ба шумо имкон медиҳад, ки ҷараёни кодро дар асоси шароит назорат кунед. Бо вуҷуди ин, бояд эҳтиёт шавад, ки ҳалқаҳои беохирро пешгирӣ кунед. Дар бисёр мавридҳо, интихоби байни ҳалқаи for ва while аз вазифаи мушаххас вобаста аст.
Ҳалқаҳои дохилӣ
Ҳалқаҳои дохилӣ ин ҳолатест, ки як ҳалқа дар дохили дигар аст. Ин ба шумо имкон медиҳад, ки сохторҳои додаҳои дученакаро самаранок коркард кунед ва вазифаҳои такроршавандаро дар доираи вазифаҳои такроршаванда иҷро кунед. Биёед хусусиятҳои ҳалқаҳои дохилӣ ва татбиқи онҳоро дида бароем.
Асосҳои ҳалқаи дохилӣ
Ҳалқаҳои дохилӣ тавассути ҷойгир кардани як ҳалқа дар дохили дигар сохта мешаванд. Ҳалқаи дохилӣ барои ҳар як такрори ҳалқаи беруна пурра иҷро карда мешавад.

Мисол: Доираи оддии for:
Дар ин мисол, ҳалқаи берунӣ (тағйирёбандаи i) се маротиба иҷро карда мешавад ва барои ҳар як такрор, ҳалқаи дохилӣ се маротиба иҷро карда мешавад. Дар натиҷа, ҳамаи ададҳои дохили i ва j чоп карда мешаванд.

Мисол: Ҳалқаи одди ва дохилии while:
Ин мисол як принсипи ҳалқаҳои дохилиро нишон медиҳад, аммо бо истифода аз ҳалқаҳои while.
Истифодаи ҳалқаҳои дохилӣ:
1.    Коркарди маълумотҳои дученака:
Ҳалқаҳои дохилӣ барои коркарди сохторҳои дученакаи додаҳо ба монанди матритсаҳо ё рӯйхатҳо низ истифода бурда мешаванд.
Мисол: Натиҷаи матритса:
Ҳалқаҳои дохилӣ дар амалия
Ҳалқаҳои дохилӣ дар соҳаҳои гуногуни барномасозӣ, махсусан ҳангоми кор бо тағйирёбандаҳо ва сохторҳои бисёрченака васеъ истифода мешаванд. Биёед якчанд мисолҳои амалии истифодаи ҳалқаҳои дохилиро дида бароем.

Мисоли 1: Ҷадвалҳои зарб
Як мисоли классикии истифодаи ҳалқаҳои дохилӣ ин сохтани ҷадвали зарб мебошад. Мо метавонем ду ҳалқаи for –ро барои такрор кардани арзишҳои аз 1 то 10 барои ҳарду тағирёбанда истифода барем ва натиҷаи зарби онҳоро чоп кунем.
Ин код ҷадвали зарбро аз 1 то 10 месозад.

Мисоли 2: Кашидани чоркунҷа
Доираҳои лонаро барои сохтани шаклҳои графикӣ ба монанди секунҷаҳо, росткунҷаҳо ё дигар шаклҳои геометрӣ истифода бурдан мумкин аст. Масалан, мо метавонем як росткунҷаи ситораҳоро кашем:
Ин код бо истифода аз аломати '*' чоркунҷаи 5 сатр ва 10 сутунро месозад.

Мисоли 3: Ҷустуҷӯи элемент дар матритса
Биёед тасаввур кунем, ки мо матритса дорем ва мо мехоҳем координатҳои (индексҳои) элементи муайянро дар ин матритса пайдо кунем. Мо метавонем ҳалқаҳои дохилиро истифода барем, то тамоми унсурҳои матритсаро санҷум ва элементи муайянро пайдо кунем.
Ин код арзишеро ки дар тағйирёбандаи search_element нишон дода шудааст дар матритса меҷӯяд ва координатҳои онро дар сурати пайдо шудани он чоп мекунад.
Ҳалқаҳои дохилӣ механизми пурқувватеро барои коркарди додаҳои дученака ва такрори вазифаҳо дар доираи вазифаҳои такроршаванда таъмин мекунанд. Онҳо дар коркарди тасвирҳо, кор бо матритсаҳо, графика ва дигар соҳаҳои барномасозӣ васеъ истифода мешаванд, ки дар он сохтори додаҳо бо якчанд сатҳҳои дохилӣ мавҷуд аст. Муҳим аст, ки ҳалқаҳои дохилиро бодиққат истифода баред, то ба хатоги дучор нашавед.