КампутарыПраграмаванне

Мова праграмавання Python: цыклы

У мове праграмавання Python (таксама «Пайтона» або «Пітон») ёсць некалькі спосабаў зацыклення некаторага дзеяння. Асноўныя прылады рэалізацыі якой-небудзь ітэрацыі ў Python - цыклы while і for. Цыкл while больш універсальны, чым for, таму ён працуе павольней. Аднак гэта зусім не азначае, што ён лепш! Цыкл for выкарыстоўваюць значна часцей, таму як з яго дапамогай рэалізуюцца самыя складаныя задачы для стварэння шматузроўневых і многоусловных праграм.

Python: цыкл з постусловием

Цыклы з постусловием - гэта цыклы while, якія з'яўляюцца самымі ўніверсальнымі арганізацыйнымі канструкцыямі ў дадзенай асяроддзі праграмавання. Цыкл while працуе па прынцыпе «да таго часу, пакуль". Гэта азначае наступнае: пакуль некаторы ўмова будзе вяртаць праўдзівае значэнне, ён будзе працаваць! Дадзеная канструкцыя называецца «цыклам», таму як функцыянальнае кіраванне цыклічна паўтараецца, пачынаючы з першапачатковага значэння. Выхад з цыклу while у Python будзе рэалізаваны ў той момант, калі значэнне стане ілжывым. У гэты момант інтэрпрэтатар перадае выкананне праграмы наступнага функцыянальна-сэнсавым сегменту, то ёсць новым радку, якая размяшчаецца пасля блока з постусловием while.

У мове праграмавання Python цыклы з постусловием while маюць наступны сінтаксіс:

1. While (умова):

2. выраз

Выразам можа быць як адна інструкцыя, так і некалькі. Умовай заўсёды з'яўляецца некаторы праўдзівае значэнне альбо ненулявое. Падобная канструкцыя працуе да таго часу, пакуль зададзенае ўмова ўяўляе сабою праўду.

Выкарыстанне цыклу while ў «Пайтона» на прыкладзе

Рассмотирим цыкл while. Python даволі цікава структуруе яго ітэрацыі:

a = 0
while a <7:
print ( "A")
a = а + 1

Мы абвясцілі зменную "а" і задалі ёй нулявое значэнне. Затым задалі ўмова "while a <7", гэта значыць пакуль пераменная "а" будзе менш чым лік "7", то наш цыкл будзе выконвацца да таго часу, пакуль не стане ілжывым.

А ілжывым (гэта значыць ажыццявіць выхад з цыклу) ён стане тады, калі пераменная стане больш чысла "7". Каб гэта адбылося, яна кожны раз павялічваецца на 1, што мы паказваем у радку "а = а + 1".

Калі запусціць дадзеную канструкцыю, то літара "А" будзе выведзена 7 раз у слупок!

A
A
A
A
A
A
A

Бясконцы цыкл while ў Python

Як зрабіць у Python бясконцы цыкл while? Здагадацца зусім не складана, бо цыкл працуе да таго часу, пакуль не атрымае ілжывае значэнне, а калі гэтага значэння папросту няма? Адказ на пытанне, напэўна, ужо і так усім зразумелы. У якіх жа выпадках бясконцы цыкл неабходны для вырашэння якой-небудзь задачы? Дадзеных прыкладам паслужыць рэалізацыя такой праграмы, як «гадзіны». Тут, несумненна, спатрэбіцца задзейнічаць бясконцы цыкл, які будзе перманентна абнаўляць і паказваць час.

Бясконцы цыкл вельмі часта з'яўляецца памылкай пачаткоўцаў праграмістаў, якія забываюць дадаваць змены умоў цыклу.

Давайце зірнем на наступны фрагмент кода Python. Цыклы ў дадзеным выпадку итерируются бясконца (пасля сімвала «#» ідзе каментар):

number = 1 # аб'яўляем зменную number і прысвойваем ёй значэнне 1

while number <10: # ствараем постусловие, у якім number менш 10

print 'Hello' # выконваем ўмова (друкуем паведамленне «Hello»)

Такую праграму не варта спяшацца кампіляваць, таму як яна будзе выконвацца бясконца. Мы задалі такія ўмовы, пры якіх ніколі не будзе фальшывага значэння: ўмова «number <10» у дадзеным выпадку нязменна і праўдзіва, таму ітэрацыя будзе ажыццяўляцца пастаянна, выводзячы N-ое колькасць паведамленняў "Hello". Для таго каб спыніць працэс вечнай кампіляцыі, трэба будзе націснуць камбінацыю клавіш Ctrl + C у shell.

Python: сінтаксіс. Цыклы while і for

Як ужо было сказана вышэй, у мове праграмавання «Пайтона» існуе некалькі спосабаў арганізацыі паўтарэння групы выразаў. На дапамогу прыходзіць цыкл for, які трохі адрозніваецца ад свайго калегі while, таму як яго канструкцыя некалькі складаней, чым проста постусловие. Пра ўніверсальнасць дадзенага цыклу казаць не будзем, бо яе папросту няма, аднак можна адзначыць, што цыкл for працуе нашмат хутчэй, чым while. Мноства шляхоў для вырашэння і хуткадзейнасць дадзенай канструкцыі трохі выйграюць у цыкла з постусловием, таму яго нашмат часцей выкарыстоўваюць для выканання мноства трывіяльных задач.

Якія задачы стаяць перад цыклам for? Несумненна, тыя ж самыя, што і ў while - итерировать якія-небудзь працэсы. У праграмках, выкананых на "пітонаў", шырока ўжываецца цыкл for, які здольны ажыццяўляць рэалізацыю абыходу зададзенага мноства элементаў і выконваць у сваім целе розныя ітэрацыі над імі. Магчымасці гэтай канструкцыі можна ўжываць пры апрацоўцы радкоў або спісаў сапраўды гэтак жа, як і любы іншы итерируемый аб'ект.

Прыклад выкарыстання цыкла for ў Python

Дапусцім, у нас ёсць некаторы спіс лікаў, і нам трэба кожны элемент (т. Е. Лік) павялічыць на тры адзінкі. Рэалізаваць такую задачу мы зможам шляхам зацыклення, метадамі цыклу for.

Давайце разгледзім невялікі прыклад, дзе мы будзем выконваць адпаведныя для гэтага дзеяння (пасля сімвала «#» ідзе каментар):

spisok_chisel = [5, 15, 25, 35, 45, 55, 65, 75, 85, 95] # абвясцілі масіў, які змяшчае 10 лічбаў

count = 0 # стварылі лічыльнік з нулявым значэннем

for elements in spisok_chisel: # перабіраем масіў і запісваем яго ў elements

spisok_chisel [count] = elements + 3 # лічба з масіва павялічваем на тры

count = count + 1 # пераходзім да наступнага ліку па індэксе

Вынік выканання вышэйпрыведзенай канструкцыі будзе такім:

spisok_chisel = [8, 18, 28, 38, 48, 58, 68, 78, 88, 98]

У нашым прыкладзе ёсць пераменная count, якая нам неабходная для таго, каб адзначаць зменлівыя значэння ў масіве «spisok_chisel». У зменнай count запісваюцца значэння індэкса кожнага элемента ў масіве (кожнае лік у спісе). Пераменная «elements» звязвае атрыманыя значэння ў спісе. У цыкле for мы назіраем, як рэалізуецца апрацоўка кожнага колькаснага аб'екта ў спісе. Ўнутры цыклу кожнаму лікавага аб'екту з індэксам «count» дадаецца сума бягучага итерируемого элемента і тройкі. Затым наш індэкс «count» павялічваецца на адзін, а паток рэалізацыі праграмы вяртаецца ў пачатак аб'явы канструкцыі for. Такім чынам, цыкл будзе працаваць да таго часу, пакуль не апрацуе кожны элемент у масіве, зададзенае па умове. Калі які-небудзь элемент адсутнічае, але зададзены па ўмове, працэс цыклу будзе завершаны. Звернем увагу на яшчэ адзін нюанс: калі не напісаць радок «count = count + 1», то, нягледзячы на тое, што аб'екты масіва паспяхова апрацавана, вынік пастаянна будзе дадавацца да першага лікавага аб'екту c нулявым індэксам.

Цяпер мы можам ўспомніць аб прынцыпах працы цыклу while і выявіць розніцу (нагадаем, што ў Python выхад з цыклу з постусловием ажыццяўляецца зыходзячы з лагічных крытэрыяў - true (цыкл працягвае працаваць) альбо false (цыкл спыняецца)).

Як апрацаваць радковае значэнне ў Python пры дапамозе канструкцыі for?

У кожнай мове праграмавання існуюць цыклы, і працуюць яны, як правіла, па адным і тым жа прынцыпе, адрозненні прыкметныя толькі толькі ў сінтаксісе. Аднак цыкл for ў мове "Пайтона" не з'яўляецца звычайным і трывіяльным, таму як прынцып яго працы не абмяжоўваецца лічыльнікам. Дадзеная канструкцыя перабірае кожны элемент асобна. Усё гэта лёгка растлумачыць на прыкладзе працы з радкамі, але для пачатку давайце разбярэмся з складам цыклу for:

for пераменная

ў зменнай захоўваецца вынік працы цыклу

in переменная_2

ключавое слова «in» - гэта абавязковая ўмова пры працы з цыклам «for». З переменной_2 выцягваем значэнне, якое будзем итерировать. Для нагляднасці і яснасці давайце разгледзім невялікі прыклад, як працаваць і перабіраць радкі ў Python:

char = 'праграмаванне' # Абвясцілі зменную і прысвоілі ёй радковае значэнне

for slovo in char: # Ствараем зменную slovo, у якой будуць захаваюцца індэксы перабору з зменнай char

print (slovo, end = '^') # Выводны slovo і пасля кожнай літары вставляем сімвал - птушачку.

Вынік працы скрыпту:

П ^ р ^ аб ^ г ^ р ^ а ^ м ^ м ^ і ^ р ^ аб ^ ў ^ а ^ н ^ і ^ е

аператар continue

Аператар continue рэалізуе пераход на выкананне наступнага цыклу, зададзенага па ўмове, нягледзячы на рэшту ў целе цыклу. Выкарыстоўваць аператар continue можна ў двух цыклах - for і while.

Разгледзім прыклад:

for count in 'паўторым кожную літару, акрамя аб'

if count == 'o':

continue

print (count * 2, end = '')

Вынік будзе наступны:

Ппввттрриимм ккаажжддууюю ббууккввуу ,, ккррммее

Калі апрацоўшчык знайшоў літару «о» ў радку 'паўторым кожную літару, акрамя аб', то выкананне праграмы адразу быў перанакіраваны на радок пасля слова 'continue', дзе па ўмове было зададзена дубляваць кожную літару.

аператар break

Ключавое слова «break» ўстаўляецца ў тое месца, дзе цыкл павінен перапыніцца, не чакаючы яго завяршэння, якое было зададзена умовай. Дадзеная канструкцыя вельмі часта выкарыстоўваецца пры напісанні праграм з вялікай колькасцю логікі і ўмоў.

Разгледзім невялікі прыклад працы аператара break:

for count in 'паўторым кожную літару, акрамя аб'

if count == 'o':

break

print (count * 2, end = '')

Вынік будзе наступны:

пп

Калі апрацоўшчык знайшоў літару «о» ў радку 'паўторым кожную літару акрамя, аб', то выкананне праграмы адразу быў спынены, нягледзячы на тое, што наступная радок утрымлівае некаторыя ўмовы для цыклу.

Магічнае слова else

У цыкле любога выгляду можна прымяніць аператар else. Для чаго ён патрэбны? Ён робіць праверку на тое, ці быў здзейснены выхад з цыклу метадамі break ці ж звычайным шляхам. Блок з зададзенымі правіламі ўнутры else пачне рэалізацыю толькі пры той умове, калі выхад з цыклу быў ажыццёўлены без ужывання канструкцыі break.

Разгледзім невялікі прыклад:

for count in 'прывітанне свет':

if count == 'я':

break

else:

print ( 'У вашай фразе няма літары "я"')

Вынік выканання скрыпту:

У вашай фразе няма літары "я"

Прыклады цыклаў з адваротным парадкам у мове праграмавання Python

Як рэалізуецца ў Python зваротны цыкл? Давайце ўявім, што пішам праграму, якая павінна распазнаваць знакавую радок і друкаваць яе ў зваротным парадку. Як гэта рэалізаваць?

Разгледзім прыклад ніжэй:

slovo = 'праграмаванне'

new_slovo = []

for count in range (len (s), 0, -1):

new_slovo.append (s [i-1])

new_slovlo

[ 'П', 'р', 'аб', 'г', 'р', 'а', 'м', 'м', 'і', 'р', 'аб', 'ў', ' а ',' н ',' і ',' е ']

print (new_slovo)

[ 'П', 'р', 'аб', 'г', 'р', 'а', 'м', 'м', 'і', 'р', 'аб', 'ў', ' а ',' н ',' і ',' е ']

print ( ''. join (new_slovo))

Вынік працы скрыпту:

еинавориммаргорп

укладзеныя цыклы

У мове праграмавання Python цыклы існуюць таксама і ўкладзеныя, то ёсць размешчаныя ў целе іншага. У кожным цыкле можа быць свой укладзены цыкл, і так можна будаваць лесвіцу да бясконцасці. На першай ітэрацыі знешні цыкл звяртаецца з выклікам да ўнутранага цыкле, які выконваецца да ўласнай завяршэння, затым усё кіраванне перанакіроўваецца ў цела вонкавага цыклу. У кожнай мове ёсць свае асаблівасці ўкладзеных цыклаў, давайце ж разбяромся, як яны ўладкованыя ў мове праграмавання «Пайтона».

Калі выкарыстоўваюцца укладзеныя цыклы, Python прапануе наступны сінтаксіс:

for пераменная in паслядоўная пераменная:

for пераменная in паслядоўная пераменная

дзеянне (дзеянні)

дзеянне (дзеянні)

Да асаблівасцяў ўкладзеных цыклаў можна аднесці тое, што ўнутры цыкла любога тыпу можна выкарыстоўваць таксама любы тып цыкла! Гэта значыць, што ў цыкле while (або for) можа быць укладзены цыкл for ці зноў жа while і наадварот.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.delachieve.com. Theme powered by WordPress.