питондо цикл үчүн. Синтаксис, тизмени кайталоо, үзүү, улантуу жана башка функциялар

ЦPython i үчүн ikl цикл ал эми - билдирүүлөр программалык камсыздоо тил, тактап айтканда: кайталоо операторлору, болсунING кодду кайталаңыз берилген номер убакыт.

Цикл үчүн — синтаксис

Буга чейин түшүндүрүлгөндөй, cPython'го киргизүү - бул итератордун негизиндей цикл боюнчаокшоштук. ал бы актылар кортеж элементтери боюнча и тизме, сөздүк баскычтар жана башка кайталануучу объекттер.

Pythonдогу цикл for ачкыч сөзүнөн башталат, андан кийин берилген ырааттуулукта кийинки объекттин маанисин сактаган ыктыярдуу өзгөрмө аты. Python тилиндеги for…in үчүн жалпы синтаксис төмөнкүдөй көрүнөт:

үчүн : else:      

компоненттери "ырааттуулугу" тизмеленген биринин артынан бири цикл өзгөрмө. Тагыраак айтканда, өзгөрмө пунктка ушундай элементтер. Баары үчүн алардын "аракет" аткарылат.

Белгилүү бир мисал менен Pythonдо жөнөкөй for цикли:

>>> тилдер = ["C", "C++", "Perl", "Python"] >>> тилдерде x үчүн: ... print(x) ... C C++ Perl Python >>>

Башка блок өзгөчөth. Эгер программистыиштеп с Perl таанышы аны менен, ошол өз ара аракеттенгендер үчүн с C жана C++ - бул инновация. Семантикалык жактан милдеттери тбирдей while цикл.

Цикл break оператору менен “токтотулбаганда” гана аткарылат. Башкача айтканда, бардык элементтер көрсөтүлгөн ырааттуулуктан өткөндөн кийин гана аткарылат.

Питондо Break оператору – үзүү

Эгерде программада for цикли бар болсо керектүү кийлигишүүThe үзүү билдирүүсү, he аяктооал баратжана программа агуу болот уландысыболуу жок жандандыруу башкадан.

Көбүнчө python тилиндеги фразаларды бузуууйтся шарттуу билдирүүлөр менен.

edles = ["чопс", "пчельмендер","жумуртка","жаңгак"] жегичтердеги тамак-аш үчүн: if food == "пүчпара": print("I'm not eat chure!") break print("Сонун, даамдуу " + тамак-аш) else: print("Чүчпара болбогону жакшы болду!") print("Кечки тамак бүттү.")

Бул кодду иштетсеңиз, төмөнкү натыйжаны аласыз:

Улуу, даамдуу котлеттер. Мен пельмен жебейм! Кечки тамак бүттү.

Учурдагы маалыматтардын тизмесинен "чүчпараны" алып салып, төмөнкүлөрдү алабыз:

Эң сонун, даамдуу котлеттер Эң сонун, даамдуу жумурткалар Мыкты, даамдуу жаңгактар ​​Жакшы нерсе, чүчпара жок болчу! Кечки тамак бүттү.

python skip оператору - улантуу

Колдонуучунун мындай буюмдарга болгон антипатиясы аларды керектөөдөн толугу менен баш тартууга анчалык деле чоң эмес дейли. Натыйжада, цикл оператор менен уланат continue. Төмөнкү скрипт билдирүүнү колдонот continue, "пельмен контакт" боюнча тизме аркылуу кайталоону улантуу.

edles = ["чопс", "пчельмендер","жумуртка","жаңгак"] жегенге жарактуу тамактар ​​үчүн: if food == "пүчпара": print("I'm not eat chure!") continue print("Сонун, даамдуу " + тамак-аш) # бул тамактан ырахат алуунун коду болушу мүмкүн :-) башка: print("Мен пельменди жек көрөм!") print("Кечки тамак бүттү.")

Жыйынтык:

Улуу, даамдуу котлеттер. Мен пельмен жебейм! Сонун, даамдуу жумурткалар Сонун, даамдуу жаңгактар ​​Мен чүчпараны жек көрөм! Кечки тамак бүттү.

range() функциясы менен тизмелерди кайталоо

Эгерде сиз тизменин индекстерине кирүүнү кааласаңыз, бул максат үчүн for циклин кантип колдонуу керектиги түшүнүксүз. Бардык элементтерге жетүүгө болот, бирок элементтин индекси жеткиликсиз бойдон кала берет. Бирок, элементтин индексине да, элементтин өзүнө да кирүү ыкмасы бар. Бул максатта функция колдонулат range() узундук функциясы менен айкалыштырылган len():

fibonacci = [0,1,1,2,3,5,8,13,21] i үчүн диапазон(len(Fibonacci)): print(i,fibonacci[i])

Get:

0 0 1 1 2 1 3 2 4 3 5 5 6 8 7 13 8 21

Көңүл бургула! Колдонулганда len() к list or tuple, берилген ырааттуулуктун элементтеринин тиешелүү саны алынат.

Тизмелер боюнча итерациялоонун кыйынчылыктары

Тизмени итерациялоодо циклдин денесинде тизме динамикасын болтурбоо сунушталат. Түшүнүктүү болуу үчүн биз төмөнкү вариантты сунуштай алабыз:

түстөр = ["кызыл"] үчүн i түстөрүндө: эгерде i болсо == "кызыл": түстөр += ["кара"] болсо, i == "кара": түстөр += ["ак"] басып чыгаруу(түстөр)

Арыз бергенде эмне болот print(colours)?

['кызыл', 'кара', 'ак']

Буга жол бербөө үчүн, төмөндөгү мисалдагыдай, кесимдерди колдонуу менен көчүрмө менен иштешүү сунушталат:

түстөр = ["кызыл"] i үчүн түстө[:]: эгерде i == "кызыл": түстөр += ["кара"] болсо, i == "кара": түстөр += ["ак"] басып чыгаруу(түстөр )

Жыйынтык:

['Кызыл Кара']

Тизме өзгөртүлдү colours, бирок бул аракет циклге таасирин тийгизген жок. Итерациялоо керек болгон маалыматтар циклдин аткарылышы учурунда өзгөрүүсүз калды.

Python 3 менен санаңыз

Enumerate орнотулган Python функциясы. Көпчүлүк башталгычтар, ошондой эле кээ бир тажрыйбалуу программисттер анын бар экенин билишпейт. Бул циклдин итерацияларын автоматтык түрдө эсептөөгө мүмкүндүк берет. Мисалы:

эсептегич үчүн, санап чыгуудагы маани (кээ бир_тизме): басып чыгаруу (эсептегич, маани)

милдети enumerate ошондой эле кошумча аргументти алат (башкы мааниси, демейки боюнча 0). Бул дагы натыйжалуу кылат.

my_list = ['алма', 'банан', 'алча', 'шабдалы'] c үчүн, санап чыгуудагы маани (менин_тизмем, 1): басып чыгаруу(c, маани) # Натыйжа: # 1 алма # 2 банан # 3 алча # 4 шабдалы

Таштап Жооп