|
|||
import sys 6 страница
9. 4 О п е р а т о р break
О п е р а т о р break с л у ж и т д л я п р е р ы в а н и я 7 ц и к л а, т. е. о с т а н о в к и в ы п о л н е н и я к о м а н д д а -ж е е с л и у с л о в и е в ы п о л н е н и я ц и к л а е щ ё н е п р и н я л о з н а ч е н и я False и л и п о с л е д о в а т е л ь -н о с т ь э л е м е н т о в н е з а к о н ч и л а с ь.
В а ж н о о т м е т и т ь, ч т о е с л и ц и к л ы for и л и while п р е р в а т ь о п е р а т о р о м break, с о о т в е т с т в у -ю щ и е и м б л о к и else в ы п о л н я т ь с я н е б у д у т.
П р и м е р: (с о х р а н и т е к а к break. py)
while True:
s = input('В в е д и т е ч т о -н и б у д ь : ')
if s=='в ы х о д ':
break
print ('Д л и н а с т р о к и: ', len(s))
print ('З а в е р ш е н и е ')
В ы в о д:
break – а н г л. «р а з б и в а т ь », «р а з р ы в а т ь » (п р и м. п е р е в. )
56 Г л а в а 9. П о т о к к о м а н д A Byte of Python (Russian), В е р с и я 2. 01
$ python break. py
В в е д и т е ч т о -н и б у д ь : П р о г р а м м и р о в а т ь в е с е л о.
Д л и н а с т р о к и: 23
В в е д и т е ч т о -н и б у д ь : Е с л и р а б о т а с к у ч н а,
Д л и н а с т р о к и: 19
В в е д и т е ч т о -н и б у д ь : Ч т о б ы п р и д а т ь е й в е с ё л ы й т о н -
Д л и н а с т р о к и: 30
В в е д и т е ч т о -н и б у д ь : и с п о л ь з у й Python!
Д л и н а с т р о к и: 23
В в е д и т е ч т о -н и б у д ь : в ы х о д
З а в е р ш е н и е
К а к э т о р а б о т а е т:
э т о й п р о г р а м м е м ы м н о г о к р а т н о с ч и т ы в а е м п о л ь з о в а т е л ь с к и й в в о д и в ы в о -д и м н а э к р а н д л и н у к а ж д о й в в е д ё н н о й с т р о к и. Д л я о с т а н о в к и п р о г р а м м ы м ы в в о д и м с п е ц и а л ь н о е у с л о в и е, п р о в е р я ю щ е е, с о в п а д а е т л и п о л ь з о в а т е л ь с к и й в в о д с о с т р о к о й 'в ы х о д '. М ы о с т а н а в л и в а е м п р о г р а м м у п р е р ы в а н и е м ц и к л а о п е р а т о р о м break и д о с т и г а е м е ё к о н ц а.
Д л и н а в в е д ё н н о й с т р о к и м о ж е т б ы т ь н а й д е н а п р и п о м о щ и в с т р о е н н о й ф у н к -ц и и len.
П о м н и т е т а к ж е, ч т о о п е р а т о р break м о ж е т п р и м е н я т ь с я и в ц и к л е for.
9. 4. 1 П о э т и ч е с к и й Python Swaroop’а
Д л я в в о д а с т р о к з д е с ь я и с п о л ь з о в а л м и н и -с т и ш о к, к о т о р ы й с а м с о ч и н и л. О н н а з ы в а е т с я П о э т и ч е с к и й Python Swaroop’а 8 П р о г р а м м и р о в а т ь в е с е л о.
Е с л и р а б о т а с к у ч н а,
Ч т о б ы п р и д а т ь е й в е с ё л ы й т о н -
и с п о л ь з у й Python!
Swaroop’s Poetic Python:
Programming is fun.
When the work is done,
if you wanna make your work also fun:
use Python!
9. 4. О п е р а т о р break 57 A Byte of Python (Russian), В е р с и я 2. 01
9. 5 О п е р а т о р continue
О п е р а т о р continue и с п о л ь з у е т с я д л я у к а з а н и я Python, ч т о н е о б х о д и м о п р о п у с т и т ь в с е о с т а в ш и е с я к о м а н д ы в т е к у щ е м б л о к е ц и к л а и п р о д о л ж и т ь 9 с о с л е д у ю щ е й и т е р а ц и и ц и к -л а.
П р и м е р: (с о х р а н и т е к а к continue. py)
while True:
s = input('В в е д и т е ч т о -н и б у д ь : ')
if s=='в ы х о д ':
break
if len(s)< 3:
print ('С л и ш к о м м а л о ')
continue
print ('В в е д ё н н а я с т р о к а д о с т а т о ч н о й д л и н ы ')
Р а з н ы е д р у г и е д е й с т в и я з д е с ь...
В ы в о д:
$ python continue. py
В в е д и т е ч т о -н и б у д ь : a
С л и ш к о м м а л о
В в е д и т е ч т о -н и б у д ь : 12
С л и ш к о м м а л о
В в е д и т е ч т о -н и б у д ь : а б в
В в е д ё н н а я с т р о к а д о с т а т о ч н о й д л и н ы
В в е д и т е ч т о -н и б у д ь : в ы х о д
К а к э т о р а б о т а е т:
э т о й п р о г р а м м е м ы з а п р а ш и в а е м в в о д с о с т о р о н ы п о л ь з о в а т е л я, н о о б р а б а -т ы в а е м в в е д ё н н у ю с т р о к у т о л ь к о е с л и о н а и м е е т д л и н у х о т я б ы в 3 с и м в о л а. И т а к, м ы и с п о л ь з у е м в с т р о е н н у ю ф у н к ц и ю len д л я п о л у ч е н и я д л и н ы с т р о к и, и е с л и д л и н а м е н е е 3, м ы п р о п у с к а е м о с т а л ь н ы е д е й с т в и я в б л о к е п р и п о м о -щ и о п е р а т о р а continue. В п р о т и в н о м с л у ч а е в с е о с т а л ь н ы е к о м а н д ы в ц и к л е в ы п о л н я ю т с я, п р о и з в о д я л ю б ы е м а н и п у л я ц и и, к о т о р ы е н а м н у ж н ы.
З а м е т ь т е, ч т о о п е р а т о р continue т а к ж е р а б о т а е т и с ц и к л о м for.
9. 6 Р е з ю м е
М ы у в и д е л и, к а к и с п о л ь з о в а т ь т р и о п е р а т о р а д л я у п р а в л е н и я п о т о к о м к о м а н д: if, while
for, а т а к ж е с в я з а н н ы е с н и м и о п е р а т о р ы break и continue. Э т о н а и б о л е е ч а с т о и с п о л ь -з у е м ы е к о н с т р у к ц и и Python, п о э т о м у о в л а д е т ь и м и о ч е н ь в а ж н о.
Д а л е е м ы у в и д и м, к а к с о з д а в а т ь и и с п о л ь з о в а т ь ф у н к ц и и.
continue – а н г л. «п р о д о л ж а т ь » (п р и м. п е р е в. )
58 Г л а в а 9. П о т о к к о м а н д
Ф у н к ц и и
Ф у н к ц и и – э т о м н о г о к р а т н о и с п о л ь з у е м ы е ф р а г м е н т ы п р о г р а м м ы. О н и п о з в о л я ю т д а т ь и м я о п р е д е л ё н н о м у б л о к у к о м а н д с т е м, ч т о б ы в п о с л е д с т в и и з а п у с к а т ь э т о т б л о к п о у к а з а н н о м у и м е н и в л ю б о м м е с т е п р о г р а м м ы и с к о л ь у г о д н о м н о г о р а з. Э т о н а з ы в а е т с я в ы з о в о м ф у н к ц и и. М ы у ж е и с п о л ь з о в а л и м н о г о в с т р о е н н ы х ф у н к ц и й, к а к т о lenи range.
Ф у н к ц и я – э т о, п о ж а л у й, н а и б о л е е в а ж н ы й с т р о и т е л ь н ы й б л о к л ю б о й н е т р и в и а л ь н о й п р о г р а м м ы (н а л ю б о м я з ы к е п р о г р а м м и р о в а н и я ), п о э т о м у в э т о й г л а в е м ы р а с с м о т р и м р а з л и ч н ы е а с п е к т ы ф у н к ц и й.
Ф у н к ц и и о п р е д е л я ю т с я п р и п о м о щ и з а р е з е р в и р о в а н н о г о с л о в а def. П о с л е э т о г о с л о в а у к а з ы в а е т с я и м я ф у н к ц и и, з а к о т о р ы м с л е д у е т п а р а с к о б о к, в к о т о р ы х м о ж н о у к а з а т ь и м е н а н е к о т о р ы х п е р е м е н н ы х, и з а к л ю ч и т е л ь н о е д в о е т о ч и е в к о н ц е с т р о к и. Д а л е е с л е -д у е т б л о к к о м а н д, с о с т а в л я ю щ и х ф у н к ц и ю. Н а п р и м е р е м о ж н о в и д е т ь, ч т о н а с а м о м д е л е э т о о ч е н ь п р о с т о:
П р и м е р: (с о х р а н и т е к а к function1. py)
def sayHello():
print ('П р и в е т, М и р! ')#б л о к, п р и н а д л е ж а щ и й ф у н к ц и и
К о н е ц ф у н к ц и и
sayHello() # в ы з о в ф у н к ц и и
sayHello() # е щ ё о д и н в ы з о в ф у н к ц и и
В ы в о д:
$ python function1. py
П р и в е т, М и р!
П р и в е т, М и р!
К а к э т о р а б о т а е т:
М ы о п р е д е л и л и ф у н к ц и ю с и м е н е м sayHello, и с п о л ь з у я о п и с а н н ы й в ы ш е с и н т а к с и с. Э т а ф у н к ц и я н е п р и н и м а е т п а р а м е т р о в, п о э т о м у в с к о б к а х н е о б ъ -я в л е н ы к а к и е -л и б о п е р е м е н н ы е. П а р а м е т р ы ф у н к ц и и – э т о н е к и е в х о д н ы е д а н н ы е, к о т о р ы е м ы м о ж е м п е р е д а т ь ф у н к ц и и, ч т о б ы п о л у ч и т ь с о о т в е т с т в у -ю щ и й и м р е з у л ь т а т.
О б р а т и т е в н и м а н и е, ч т о м ы м о ж е м в ы з ы в а т ь о д н у и т у ж е ф у н к ц и ю м н о г о р а з, а з н а ч и т н е т н е о б х о д и м о с т и п и с а т ь о д и н и т о т ж е к о д с н о в а и с н о в а.
A Byte of Python (Russian), В е р с и я 2. 01
10. 1 П а р а м е т р ы ф у н к ц и й
Ф у н к ц и и м о г у т п р и н и м а т ь п а р а м е т р ы, т. е. н е к о т о р ы е з н а ч е н и я, п е р е д а в а е м ы е ф у н к ц и и д л я т о г о, ч т о б ы о н а ч т о -л и б о с д е л а л а с н и м и. Э т и п а р а м е т р ы п о х о ж и н а п е р е м е н н ы е, з а и с к л ю ч е н и е м т о г о, ч т о з н а ч е н и е э т и х п е р е м е н н ы х у к а з ы в а е т с я п р и в ы з о в е ф у н к ц и и, и в о в р е м я р а б о т ы ф у н к ц и и и м у ж е п р и с в о е н ы и х з н а ч е н и я.
|
|||
|