Хелпикс

Главная

Контакты

Случайная статья





import sys 5 страница



 

З а м е ч а н и е д л я п р о г р а м м и с т о в н а C/C++

 

Python н е т о п е р а т о р а switch. О д н а к о, п р и п о м о щ и к о н с т р у к ц и и if.. elif.. else м о ж н о д о с т и ч ь т о г о ж е с а м о г о (а в н е к о т о р ы х с л у ч а я х м о ж н о д а ж е и с п о л ь з о в а т ь с л о в а р ь , ч т о б ы с д е л а т ь э т о б ы с т р о ).

 

9. 2 О п е р а т о р while

 

О п е р а т о р while п о з в о л я е т м н о г о к р а т н о в ы п о л н я т ь б л о к к о м а н д д о т е х п о р, п о к а в ы п о л -н я е т с я н е к о т о р о е у с л о в и е. Э т о о д и н и з т а к н а з ы в а е м ы х о п е р а т о р о в ц и к л а . О н т а к ж е м о ж е т и м е т ь н е о б я з а т е л ь н ы й п у н к т else.

 

П р и м е р: (с о х р а н и т е к а к while. py)

 

number = 23

 

running = True

 

 

nested – а н г л. «в л о ж е н н ы й » (п р и м. п е р е в. )


 

 

9. 2. О п е р а т о р while                                                                                                                                                    53


A Byte of Python (Russian), В е р с и я 2. 01

 

while running:

 

guess = int(input('В в е д и т е ц е л о е ч и с л о : '))

 

if guess==number:

 

print ('П о з д р а в л я ю, в ы у г а д а л и. ')

 

running = False # э т о о с т а н а в л и в а е т ц и к л while elif guess< number:

print ('Н е т, з а г а д а н н о е ч и с л о н е м н о г о б о л ь ш е э т о г о ')

 

else:

 

print ('Н е т, з а г а д а н н о е ч и с л о н е м н о г о м е н ь ш е э т о г о. ')

 

else:

 

print ('Ц и к л whileз а к о н ч е н. ')

 

З д е с ь м о ж е т е в ы п о л н и т ь в с ё ч т о в а м е щ ё н у ж н о

 

print ('З а в е р ш е н и е. ')

 

В ы в о д:

 

$ python while. py

 

В в е д и т е ц е л о е ч и с л о : 50

 

Н е т, ч и с л о н е с к о л ь к о м е н ь ш е.

 

В в е д и т е ц е л о е ч и с л о : 22

 

Н е т, ч и с л о н е с к о л ь к о б о л ь ш е.

 

В в е д и т е ц е л о е ч и с л о : 23

 

П о з д р а в л я ю, в ы у г а д а л и.

 

Ц и к л while з а к о н ч е н.

 

З а в е р ш е н и е.

 

К а к э т о р а б о т а е т:

 

э т о й п р о г р а м м е м ы п р о д о л ж а е м и г р а т ь в и г р у с у г а д ы в а н и е м, н о п р е и м у -щ е с т в о с о с т о и т в т о м, ч т о т е п е р ь п о л ь з о в а т е л ь м о ж е т у г а д ы в а т ь д о т е х п о р, п о к а н е у г а д а е т п р а в и л ь н о е ч и с л о, и е м у н е п р и д ё т с я з а п у с к а т ь п р о г р а м м у з а н о в о д л я к а ж д о й п о п ы т к и, к а к э т о п р о и с х о д и л о д о с и х п о р. Э т о н а г л я д н о д е м о н с т р и р у е т п р и м е н е н и е о п е р а т о р а while.

 

М ы п е р е м е с т и л и о п е р а т о р ы input и if в н у т р ь ц и к л а while и у с т а н о в и л и п е -р е м е н н у ю running в з н а ч е н и е True п е р е д з а п у с к о м ц и к л а. П р е ж д е в с е г о п р о -в е р я е т с я, р а в н о л и з н а ч е н и е п е р е м е н н о й running True, а з а т е м п р о и с х о д и т п е -р е х о д к с о о т в е т с т в у ю щ е м у while-б л о к у . П о с л е в ы п о л н е н и я э т о г о б л о к а к о м а н д у с л о в и е, к о т о р ы м в д а н н о м с л у ч а е я в л я е т с я п е р е м е н н а я running, п р о в е р я е т с я с н о в а. Е с л и о н о и с т и н н о, while-б л о к з а п у с к а е т с я с н о в а, в п р о т и в н о м с л у ч а е п р о и с х о д и т п е р е х о д к д о п о л н и т е л ь н о м у else-б л о к у, а з а т е м – к с л е д у ю щ е м у о п е р а т о р у.

 

Б л о к else в ы п о л н я е т с я т о г д а, к о г д а у с л о в и е ц и к л а while с т а н о в и т с я л о ж н ы м (False) – э т о м о ж е т с л у ч и т ь с я д а ж е п р и с а м о й п е р в о й п р о в е р к е у с л о в и я. Е с л и у ц и к л а while и м е е т с я д о п о л н и т е л ь н ы й б л о к else, о н в с е г д а в ы п о л н я е т с я, е с л и т о л ь к о ц и к л н е б у д е т п р е р в а н о п е р а т о р о м break.

 

54                                                                                                                                     Г л а в а 9. П о т о к к о м а н д


A Byte of Python (Russian), В е р с и я 2. 01

 

 

True и False н а з ы в а ю т с я б у л е в ы м т и п о м д а н н ы х, и в ы м о ж е т е с ч и т а т ь и х э к в и в а л е н т -н ы м и з н а ч е н и я м 1 и 0 с о о т в е т с т в е н н о.

 

П р и м е ч а н и е д л я п р о г р а м м и с т о в н а C/C++ П о м н и т е, ч т о у ц и к л а while м о ж е т б ы т ь б л о к else.

 

 

9. 3 Ц и к л for

 

О п е р а т о р for.. in т а к ж е я в л я е т с я о п е р а т о р о м ц и к л а, к о т о р ы й о с у щ е с т в л я е т и т е р а ц и ю п о п о с л е д о в а т е л ь н о с т и о б ъ е к т о в, т. е. п р о х о д и т ч е р е з к а ж д ы й э л е м е н т в п о с л е д о в а т е л ь -н о с т и. М ы у з н а е м б о л ь ш е о п о с л е д о в а т е л ь н о с т я х в д а л ь н е й ш и х г л а в а х, а п о к а п р о с т о з а п о м н и т е, ч т о п о с л е д о в а т е л ь н о с т ь – э т о у п о р я д о ч е н н ы й н а б о р э л е м е н т о в.

 

П р и м е р: (с о х р а н и т е к а к for. py)

 

for i in range(1, 5):

 

print (i)

 

else:

 

print ('Ц и к л forз а к о н ч е н ')

 

В ы в о д:

 

python for. py

 

 

 

 

 

Ц и к л for з а к о н ч е н

 

К а к э т о р а б о т а е т:

 

э т о й п р о г р а м м е м ы в ы в о д и м н а э к р а н п о с л е д о в а т е л ь н о с т ь ч и с е л. М ы г е н е -р и р у е м э т у п о с л е д о в а т е л ь н о с т ь, и с п о л ь з у я в с т р о е н н у ю ф у н к ц и ю range5.

 

М ы з а д а ё м д в а ч и с л а, и range в о з в р а щ а е т п о с л е д о в а т е л ь н о с т ь ч и с е л о т п е р -в о г о ч и с л а д о в т о р о г о. Н а п р и м е р, range(1, 5) д а ё т п о с л е д о в а т е л ь н о с т ь [1, 2, 3, 4]. П о у м о л ч а н и ю range п р и н и м а е т з н а ч е н и е ш а г а, р а в н о е 1. Е с л и м ы з а д а д и м т а к ж е и т р е т ь е ч и с л о range, о н о б у д е т с л у ж и т ь ш а г о м. Н а п р и м е р, range(1, 5, 2) д а с т [1, 3]. П о м н и т е, и н т е р в а л п р о с т и р а е т с я т о л ь к о д о в т о р о г о ч и с л а, т. е. н е в к л ю ч а е т е г о в с е б я.

 

О б р а т и т е в н и м а н и е, ч т о range() г е н е р и р у е т п о с л е д о в а т е л ь н о с т ь ч и с е л, н о т о л ь к о п о о д н о м у ч и с л у з а р а з – к о г д а о п е р а т о р for з а п р а ш и в а е т с л е д у ю -щ и й э л е м е н т. Ч т о б ы у в и д е т ь в с ю п о с л е д о в а т е л ь н о с т ь ч и с е л с р а з у, и с п о л ь -з у й т е list(range()). С п и с к и 6 п о д р о б н о р а с с м а т р и в а ю т с я в г л а в е С т р у к т у р ы

range – а н г л. «д и а п а з о н », «и н т е р в а л » (п р и м. п е р е в. )

6 list – а н г л. «с п и с о к » (п р и м. п е р е в. )


 

9. 3. Ц и к л for                                                                                                                                                                      55


A Byte of Python (Russian), В е р с и я 2. 01

 

 

д а н н ы х .

 

З а т е м ц и к л for о с у щ е с т в л я е т и т е р а ц и ю п о э т о м у д и а п а з о н у - for i in range(1, 5) э к в и в а л е н т н о for i in [1, 2, 3, 4], ч т о н а п о м и н а е т п р и с в а -и в а н и е п е р е м е н н о й i п о о д н о м у ч и с л у (и л и о б ъ е к т у ) з а р а з, в ы п о л н я я б л о к к о м а н д д л я к а ж д о г о з н а ч е н и я i. В д а н н о м с л у ч а е в б л о к е к о м а н д м ы п р о с т о в ы в о д и м з н а ч е н и е н а э к р а н.

 

П о м н и т е, ч т о б л о к else н е о б я з а т е л е н. Е с л и о н п р и с у т с т в у е т, о н в с е г д а в ы п о л н я е т с я о д и н р а з п о с л е о к о н ч а н и я ц и к л а for, е с л и т о л ь к о н е у к а з а н о п е р а т о р break.

 

П о м н и т е т а к ж е, ч т о ц и к л for.. in р а б о т а е т д л я л ю б о й п о с л е д о в а т е л ь н о с т и. В н а ш е м с л у -ч а е э т о с п и с о к ч и с е л, с г е н е р и р о в а н н ы й в с т р о е н н о й ф у н к ц и е й range, н о в о б щ е м с л у ч а е м о ж н о и с п о л ь з о в а т ь л ю б у ю п о с л е д о в а т е л ь н о с т ь л ю б ы х о б ъ е к т о в! В с л е д у ю щ и х р а з д е л а х м ы п о з н а к о м и м с я с э т и м п о б л и ж е.

 

П р и м е ч а н и е д л я п р о г р а м м и с т о в н а C/C++/Java/C#

 

Ц и к л for в Python р а д и к а л ь н о о т л и ч а е т с я о т ц и к л а for в C/C++. П р о г р а м м и с т ы н а C# з а м е т я т, ч т о ц и к л for в Python п о х о ж н а ц и к л foreach в C#. П р о г р а м м и с т а м н а Java э т о м о ж е т н а п о м н и т ь к о н с т р у к ц и ю for (int i: IntArray) в Java 1. 5.

 

Е с л и в C/C++ з а п и с а т ь for (int i = 0; i < 5; i++), т о в Python э т о м у с о о т в е т с т в о в а л о б ы в ы р а ж е н и е for i in range(0, 5). К а к в и д н о, в Python ц и к л for п р о щ е, б о л е е в ы р а з и т е л е н и м е н е е п о д в е р ж е н о ш и б к а м.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.