Хелпикс

Главная

Контакты

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





Как писать программы на Python 12 страница



 

 

7. 1 К о м м е н т а р и и

 

К о м м е н т а р и и –э т о т о, ч т о п и ш е т с я п о с л е с и м в о л а #, и п р е д с т а в л я е т и н т е р е с л и ш ь к а к з а м е т к а д л я ч и т а ю щ е г о п р о г р а м м у.

 

Н а п р и м е р:

 

print ('П р и в е т, М и р! ) # print --э т о ф у н к ц и я

 

и л и:

 

print -- э т о ф у н к ц и я

 

print ('П р и в е т, М и р! )

 

С т а р а й т е с ь в с в о и х п р о г р а м м а х п и с а т ь к а к м о ж н о б о л ь ш е п о л е з н ы х к о м м е н т а р и е в, о б ъ -я с н я ю щ и х:

 

п р е д п о л о ж е н и я;

 

в а ж н ы е р е ш е н и я;

 

в а ж н ы е д е т а л и;

 

п р о б л е м ы, к о т о р ы е в ы п ы т а е т е с ь р е ш и т ь;

 

п р о б л е м ы, к о т о р ы х в ы п ы т а е т е с ь и з б е ж а т ь и т. д.

 

Т е к с т п р о г р а м м ы г о в о р и т о т о м, К А К, а к о м м е н т а р и и д о л ж н ы о б ъ я с н я т ь, П О Ч Е М У.

 

Э т о б у д е т п о л е з н о д л я т е х, к т о б у д е т ч и т а т ь в а ш у п р о г р а м м у, т а к к а к и м л е г ч е б у д е т п о н я т ь, ч т о п р о г р а м м а д е л а е т. П о м н и т е, ч т о т а к и м ч е л о в е к о м м о ж е т е о к а з а т ь с я в ы с а м и ч е р е з п о л г о д а!


 


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

 

 

7. 2 Л и т е р а л ь н ы е к о н с т а н т ы

 

П р и м е р о м л и т е р а л ь н о й к о н с т а н т ы м о ж е т б ы т ь ч и с л о, н а п р и м е р, 5, 1. 23, 9. 25e-3 и л и ч т о -н и б у д ь в р о д е 'Э т о с т р о к а ' и л и " It's a string! ". О н и н а з ы в а ю т с я л и т е р а л ь н ы м и, п о т о м у ч т о о н и «б у к в а л ь н ы »1 – в ы и с п о л ь з у е т е и х з н а ч е н и е б у к в а л ь н о. Ч и с л о 2 в с е г д а п р е д с т а в л я е т с а м о с е б я и н и ч е г о д р у г о г о – э т о «к о н с т а н т а », п о т о м у ч т о е ё з н а ч е н и е н е л ь -з я и з м е н и т ь. П о э т о м у в с ё э т о н а з ы в а е т с я л и т е р а л ь н ы м и к о н с т а н т а м и.

 

 

7. 3 Ч и с л а

 

Ч и с л а в Python б ы в а ю т т р ё х т и п о в: ц е л ы е, с п л а в а ю щ е й т о ч к о й и к о м п л е к с н ы е.

 

П р и м е р о м ц е л о г о ч и с л а м о ж е т с л у ж и т ь 2.

 

П р и м е р а м и ч и с е л с п л а в а ю щ е й т о ч к о й (и л и «п л а в а ю щ и х » д л я к р а т к о с т и ) м о г у т б ы т ь 3. 23 и 52. 3E-4. О б о з н а ч е н и е E п о к а з ы в а е т с т е п е н и ч и с л а 10. В д а н н о м с л у ч а е 52. 3E-4 о з н а ч а е т 52: 3 10 4.

 

П р и м е р ы к о м п л е к с н ы х ч и с е л: (-5+4j) и (2. 3 - 4. 6j)

 

З а м е ч а н и е д л я о п ы т н ы х п р о г р а м м и с т о в

 

Н е т о т д е л ь н о г о т и п а ‘long int’ (д л и н н о е ц е л о е ). Ц е л ы е ч и с л а п о у м о л ч а н и ю м о г у т б ы т ь п р о и з в о л ь н о й д л и н ы.

 

7. 4 С т р о к и

 

С т р о к а – э т о п о с л е д о в а т е л ь н о с т ь с и м в о л о в . Ч а щ е в с е г о с т р о к и – э т о п р о с т о н е к о т о р ы е н а б о р ы с л о в.

 

С л о в а м о г у т б ы т ь к а к н а а н г л и й с к о м я з ы к е, т а к и н а л ю б о м д р у г о м, п о д д е р ж и в а е м о м с т а н д а р т о м Unicode, ч т о о з н а ч а е т п о ч т и н а л ю б о м я з ы к е м и р а.

 

З а м е ч а н и е д л я о п ы т н ы х п р о г р а м м и с т о в

 

Python 3 н е т ASCII-с т р о к, п о т о м у ч т о Unicode я в л я е т с я н а д м н о ж е с т в о м (в к л ю ч а е т в с е б я ) ASCII. Е с л и н е о б х о д и м о п о л у ч и т ь с т р о к у с т р о г о в к о д и р о в к е ASCII, и с п о л ь з у й т е str. encode(" ascii" ). П о д р о б н е е с м о т р и т е в о б с у ж д е н и и э т о г о в о п р о с а н а StackOverflow. П о у м о л ч а н и ю в с е с т р о к и в Unicode.

 

м о г у с у в е р е н н о с т ь ю с к а з а т ь, ч т о в ы б у д е т е и с п о л ь з о в а т ь с т р о к и п о ч т и в к а ж д о й в а -ш е й п р о г р а м м е н а Python. П о э т о м у у д е л и т е в н и м а н и е т о м у, к а к р а б о т а т ь с о с т р о к а м и в

Python.

 

“literal” – а н г л. «б у к в а л ь н ы й »; в с п о м н и т е «л и т е р а » (с и н. «б у к в а »). (п р и м. п е р е в. )


 

 

36                                                                                                                                                      Г л а в а 7. О с н о в ы


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

 

 

7. 4. 1 О д и н а р н ы е к а в ы ч к и

 

С т р о к у м о ж н о у к а з а т ь, и с п о л ь з у я о д и н а р н ы е к а в ы ч к и, к а к н а п р и м е р, 'Ф р а з а в к а в ы ч -к а х '. В с е п р о б е л ы и з н а к и т а б у л я ц и и с о х р а н я т с я, к а к е с т ь.

 

 

7. 4. 2 Д в о й н ы е к а в ы ч к и

 

С т р о к и в д в о й н ы х к а в ы ч к а х р а б о т а ю т т о ч н о т а к ж е, к а к и в о д и н а р н ы х. Н а п р и м е р, " What's your name? ".

 

7. 4. 3 Т р о й н ы е к а в ы ч к и

 

М о ж н о у к а з ы в а т ь «м н о г о с т р о ч н ы е » с т р о к и с и с п о л ь з о в а н и е м т р о й н ы х к а в ы ч е к (" " " и л и '''). В п р е д е л а х т р о й н ы х к а в ы ч е к м о ж н о с в о б о д н о и с п о л ь з о в а т ь д в о й н ы е и л и т р о й н ы е к а в ы ч к и. Н а п р и м е р:

 

'''Э т о м н о г о с т р о ч н а я с т р о к а. Э т о е ё п е р в а я с т р о к а.

 

Э т о е ё в т о р а я с т р о к а.

 

" What's your name? ", - с п р о с и л я.

 

О н о т в е т и л: " Bond, James Bond. "

 

'''

 

 

7. 4. 4 С т р о к и н е и з м е н я е м ы

 

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

 

7. 4. 5 О б ъ е д и н е н и е с т р о к о в ы х к о н с т а н т

 

Е с л и р а с п о л о ж и т ь р я д о м д в е с т р о к о в ы х к о н с т а н т ы, Python а в т о м а т и ч е с к и и х о б ъ е д и -н и т. Н а п р и м е р, 'What\'s ' 'your name? ' а в т о м а т и ч е с к и п р е о б р а з у е т с я в " What's your name? ".

 

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

 

Python н е т о т д е л ь н о г о т и п а д а н н ы х char (с и м в о л ). В н ё м н е т н у ж д ы, и я у в е р е н, ч т о в ы н е б у д е т е п о н е м у с к у ч а т ь.

 

 

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

 

П о м н и т е, ч т о с т р о к и в д в о й н ы х к а в ы ч к а х и в о д и н а р н ы х э к в и в а л е н т н ы, и н и ч е м д р у г о т д р у г а н е о т л и ч а ю т с я.


 

7. 4. С т р о к и                                                                                                                                                                         37


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

 

 

7. 4. 6 М е т о д format

 

И н о г д а б ы в а е т н у ж н о с о с т а в и т ь с т р о к у н а о с н о в е к а к и х -л и б о д а н н ы х. В о т з д е с ь -т о и п р и -г о ж д а е т с я м е т о д format().

 

С о х р а н и т е с л е д у ю щ и е с т р о к и в ф а й л str_format. py:

 

age = 26

 

name = 'Swaroop'

 

print ('В о з р а с т {0} -- {1}л е т. '. format(name, age))

 

print ('П о ч е м у {0}з а б а в л я е т с я с э т и м Python? '. format(name))

 

В ы в о д:

 

$ python str_format. py

 

В о з р а с т Swaroop -- 26 л е т.

 

П о ч е м у Swaroop з а б а в л я е т с я с э т и м Python?

 

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

 

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

 

В з г л я н и т е н а п е р в ы й с л у ч а й п р и м е н е н и я о б о з н а ч е н и й, г д е м ы п и ш е м {0}, и э т о с о о т в е т с т в у е т п е р е м е н н о й name, я в л я ю щ е й с я п е р в ы м а р г у м е н т о м м е т о д а format. А н а л о г и ч н о, в т о р о е о б о з н а ч е н и е {1} с о о т в е т с т в у е т п е р е м е н н о й age, я в л я ю щ е й с я в т о р ы м а р г у м е н т о м м е т о д а format. З а м е т ь т е, ч т о Python н а ч и н а -е т о т с ч ё т с 0, п о э т о м у п е р в а я п о з и ц и я – н о м е р 0, в т о р а я – н о м е р 1 и т. д.

 

З а м е т ь т е, м ы в е д ь м о г л и д о б и т ь с я т о г о ж е с а м о г о р е з у л ь т а т а и о б ъ е д и н е н и е м с т р о к: 'В о з р а с т ' + name + ' -- ' + str(age) + ' л е т. ', о д н а к о в ы с а м и в и д и т е, к а к э т о н е к р а с и в о, и к а к л е г к о в т а к о м с л у ч а е д о п у с т и т ь о ш и б к у. В о -в т о р ы х, п р е о б р а з о в а н и е в с т р о к у д е л а е т с я м е т о д о м format а в т о м а т и ч е с к и, в о т л и ч и е о т я в н о г о п р е о б р а з о в а н и я в н а ш е м п р и м е р е. В -т р е т ь и х, и с п о л ь з у я м е т о д format, м ы м о ж е м и з м е н и т ь с о о б щ е н и е, н е з а т р а г и в а я и с п о л ь з у е м ы х п е р е м е н н ы х, и н а о б о р о т.



  

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