Хелпикс

Главная

Контакты

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





import time. import sys. import sys,warnings. import os,platform,logging



import time

 

try:

 

f = open('poem. txt')

 

while True: #н а ш о б ы ч н ы й с п о с о б ч и т а т ь ф а й л ы line = f. readline()

if len(line)==0:

 

break

 

print (line, end='')

 

time. sleep(2) # П у с т ь п о д о ж д ё т н е к о т о р о е в р е м я except KeyboardInterrupt:

print ('!! В ы о т м е н и л и ч т е н и е ф а й л а. ')

 

finally:

 

f. close()

 

print ('(О ч и с т к а: З а к р ы т и е ф а й л а )')

 

В ы в о д:

 

as – а н г л. «к а к » (п р и м. п е р е в. )


 

 

122                                                                                                                                   Г л а в а 16. И с к л ю ч е н и я


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

 

$ python3 finally. py

 

П р о г р а м м и р о в а т ь в е с е л о

 

Е с л и р а б о т а с к у ч н а,

 

Ч т о б ы п р и д а т ь е й в е с ё л ы й т о н -

 

В ы о т м е н и л и ч т е н и е ф а й л а. (О ч и с т к а: З а к р ы т и е ф а й л а )

 

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

 

З д е с ь м ы п р о и з в о д и м о б ы ч н ы е о п е р а ц и и ч т е н и я и з ф а й л а, н о в д а н н о м с л у -ч а е д о б а в л я е м д в у х с е к у н д н ы й с о н п о с л е в ы в о д а к а ж д о й с т р о к и п р и п о м о щ и ф у н к ц и и time. sleep, ч т о б ы п р о г р а м м а в ы п о л н я л а с ь м е д л е н н о (в е д ь Python о ч е н ь б ы с т р о т п р и р о д ы ). В о в р е м я в ы п о л н е н и я п р о г р а м м ы н а ж м и т е ctrl-c, ч т о б ы п р е р в а т ь /о т м е н и т ь в ы п о л н е н и е п р о г р а м м ы.

 

П р о н а б л ю д а й т е, к а к п р и э т о м в ы д а ё т с я и с к л ю ч е н и е KeyboardInterrupt, и п р о г р а м м а в ы х о д и т. О д н а к о, п р е ж д е ч е м п р о г р а м м а в ы й д е т, в ы п о л н я е т с я п у н к т finally, и ф а й л о в ы й о б ъ е к т б у д е т в с е г д а з а к р ы т.

 

 

16. 6 О п е р а т о р with

 

Т и п и ч н о й с х е м о й я в л я е т с я з а п р о с н е к о т о р о г о р е с у р с а в б л о к е try с п о с л е д у ю щ и м о с в о -б о ж д е н и е м э т о г о р е с у р с а в б л о к е finally. Д л я т о г о, ч т о б ы с д е л а т ь э т о б о л е е «ч и с т о », с у щ е с т в у е т о п е р а т о р with4:

С о х р а н и т е к а к using_with. py:

 

with open(" poem. txt" ) as f:

 

for line in f:

 

print (line, end='')

 

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

 

В ы в о д д о л ж е н б ы т ь т а к и м ж е, к а к и в п р е д ы д у щ е м п р и м е р е. Р а з н и ц а л и ш ь

 

т о м, ч т о з д е с ь м ы и с п о л ь з у е м ф у н к ц и ю open с о п е р а т о р о м with – э т и м м ы о с т а в л я е м а в т о м а т и ч е с к о е з а к р ы т и е ф а й л а п о д о т в е т с т в е н н о с т ь with open.

 

З а к у л и с а м и п р о и с х о д и т с л е д у ю щ е е. С у щ е с т в у е т н е к и й п р о т о к о л, и с п о л ь з у е -м ы й о п е р а т о р о м with. О н с ч и т ы в а е т о б ъ е к т, в о з в р а щ а е м ы й о п е р а т о р о м open. Н а з о в ё м е г о в д а н н о м с л у ч а е «thefile».

 

П е р е д з а п у с к о м б л о к а к о д а, с о д е р ж а щ е г о с я в н ё м, о п е р а т о р with в с е г д а в ы з ы -в а е т ф у н к ц и ю thefile. __enter__, а т а к ж е в с е г д а в ы з ы в а е т thefile. __exit__ п о с л е з а в е р ш е н и я в ы п о л н е н и я э т о г о б л о к а к о д а.

 

Т а к ч т о к о д, к о т о р ы й м ы б ы н а п и с а л и в б л о к е finally, б у д е т а в т о м а т и ч е с к и о б р а б о т а н м е т о д о м __exit__. Э т о и з б а в л я е т н а с о т н е о б х о д и м о с т и п о в т о р н о в я в н о м в и д е у к а з ы в а т ь о п е р а т о р ы try.. finally.

 

with – а н г л. «с » (п р и м. п е р е в. )


 

16. 6. О п е р а т о р with                                                                                                                                                 123


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

 

 

Б о л е е о б ш и р н о е р а с с м о т р е н и е э т о й т е м ы в ы х о д и т з а р а м к и н а с т о я щ е й к н и г и, п о э т о м у д л я б о л е е и с ч е р п ы в а ю щ е г о о б ъ я с н е н и я с м. PEP 343.

 

16. 7 Р е з ю м е

 

М ы о б с у д и л и и с п о л ь з о в а н и е о п е р а т о р о в try.. except и try.. finally. М ы т а к ж е у в и д е -л и, к а к с о з д а в а т ь н а ш и с о б с т в е н н ы е т и п ы и с к л ю ч е н и й и к а к и х в ы з ы в а т ь.

 

Д а л е е м ы о з н а к о м и м с я с о с т а н д а р т н о й б и б л и о т е к о й Python.


 

124                                                                                                                                   Г л а в а 16. И с к л ю ч е н и я


 

С т а н д а р т н а я б и б л и о т е к а

 

 

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

 

Р а с с м о т р и м н е к о т о р ы е н а и б о л е е ч а с т о и с п о л ь з у е м ы е м о д у л и э т о й б и б л и о т е к и. Д е т а л ь -н о е о п и с а н и е в с е х м о д у л е й с т а н д а р т н о й б и б л и о т е к и Python м о ж н о н а й т и в р а з д е л е «Library Reference» д о к у м е н т а ц и и, в х о д я щ е й в к о м п л е к т п о с т а в к и Python.

 

Д а в а й т е и з у ч и м н е с к о л ь к о п о л е з н ы х м о д у л е й.

 

П р и м е ч а н и е

 

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

 

17. 1 М о д у л ь sys

 

М о д у л ь sys с о д е р ж и т ф у н к ц и о н а л ь н о с т ь, х а р а к т е р н у ю д л я с и с т е м ы. Т а к м ы в и д е л и, ч т о с п и с о к sys. argv с о д е р ж и т а р г у м е н т ы к о м а н д н о й с т р о к и.

 

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

 

import sys

sys. version_info (3, 0, 0, 'beta', 2)

sys. version_info[0] > = 3

True

 

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

 

М о д у л ь sys с о д е р ж и т к о р т е ж version_info, к о т о р ы й х р а н и т и н ф о р м а ц и ю о в е р с и и. П е р в ы й э л е м е н т э т о г о к о р т е ж а о б о з н а ч а е т с т а р ш у ю в е р с и ю. М ы м о -


 


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

 

 

ж е м и с п о л ь з о в а т ь е г о, н а п р и м е р, д л я т о г о, ч т о б ы у б е д и т ь с я, ч т о п р о г р а м м а б у д е т в ы п о л н я т ь с я т о л ь к о в Python 3. 0:

 

С о х р а н и т е к а к versioncheck. py:

 

import sys, warnings

 

if sys. version_info[0]< 3:

 

warnings. warn(" Д л я в ы п о л н е н и я э т о й п р о г р а м м ы н е о б х о д и м а к а к м и н и м у м \ в е р с и я Python 3. 0",

RuntimeWarning)

 

else:

 

print ('Н о р м а л ь н о е п р о д о л ж е н и е ')

 

В ы в о д:

 

$ python2. 7 versioncheck. py

 

versioncheck. py: 6: Д л я в ы п о л н е н и я э т о й п р о г р а м м ы н е о б х о д и м а к а к м и н и м у м в е р с и я Python 3. 0

RuntimeWarning)

 

$ python3 versioncheck. py

 

Н о р м а л ь н о е п р о д о л ж е н и е

 

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

 

М ы и с п о л ь з у е м о д и н и з м о д у л е й с т а н д а р т н о й б и б л и о т е к и, к о т о р ы й н а з ы в а -е т с я warnings и с л у ж и т д л я о т о б р а ж е н и я п р е д у п р е ж д е н и й п о л ь з о в а т е л ю. Е с -л и в е р с и я Python м е н е е 3, м ы п о к а з ы в а е м с о о т в е т с т в у ю щ е е п р е д у п р е ж д е н и е.

 

 

17. 2 М о д у л ь logging

 

П р е д с т а в ь т е с и т у а ц и ю, к о г д а н е о б х о д и м о с о х р а н и т ь н е к о т о р ы е о т л а д о ч н ы е и л и д р у г и е в а ж н ы е с о о б щ е н и я г д е -н и б у д ь, ч т о б ы и м е т ь в о з м о ж н о с т ь п о з ж е п р о в е р и т ь, о т р а б о т а л а л и п р о г р а м м а, к а к о ж и д а л о с ь. К а к м ы ‘«с о х р а н и м г д е -н и б у д ь » э т и с о о б щ е н и я? С д е л а т ь э т о м о ж н о п р и п о м о щ и м о д у л я logging.

 

С о х р а н и т е к а к use_logging. py:

 

import os, platform, logging

 

if platform. platform(). startswith('Windows'):

 

logging_file = os. path. join(os. getenv('HOMEDRIVE'), \

 

os. getenv('HOMEPATH'), \

 

'test. log')

 

else:

 

logging_file = os. path. join(os. getenv('HOME'), 'test. log')

 

print (" С о х р а н я е м л о г в ", logging_file)


 

126                                                                                                Г л а в а 17. С т а н д а р т н а я б и б л и о т е к а


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

 

logging. basicConfig(

 

level=logging. DEBUG,

 

format='%(asctime)s: %(levelname)s: %(message)s',

 

filename = logging_file,

 

filemode = 'w',

 

)

 

logging. debug(" Н а ч а л о п р о г р а м м ы " )

 

logging. info(" К а к и е -т о д е й с т в и я " )

 

logging. warning(" П р о г р а м м а у м и р а е т " )

 

В ы в о д:

 

$ python3 use_logging. py

 

С о х р а н я е м л о г в C: \Users\swaroop\test. log

 

Е с л и о т к р ы т ь ф а й л test. log, о н б у д е т в ы г л я д е т ь п р и м е р н о т а к:

 

2012-10-26 16: 52: 41, 457: DEBUG: Н а ч а л о п р о г р а м м ы

 

2012-10-26 16: 52: 41, 474: INFO: К а к и е -т о д е й с т в и я

 

2012-10-26 16: 52: 41, 475: WARNING: П р о г р а м м а у м и р а е т

 

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

 

М ы и с п о л ь з о в а л и т р и м о д у л я и з с т а н д а р т н о й б и б л и о т е к и: м о д у л ь os д л я в з а -и м о д е й с т в и я с о п е р а ц и о н н о й с и с т е м о й, м о д у л ь platform д л я п о л у ч е н и я и н -ф о р м а ц и и о п л а т ф о р м е (т. е. о п е р а ц и о н н о й с и с т е м е ) и м о д у л ь logging д л я с о -х р а н е н и я л о г а 1.

 

П р е ж д е в с е г о, п р и п о м о щ и с т р о к и, в о з в р а щ а е м о й ф у н к ц и е й platform. platform() м ы п р о в е р я е м, к а к а я о п е р а ц и о н н а я с и с т е м а и с -п о л ь з у е т с я (д л я б о л е е п о д р о б н о й и н ф о р м а ц и и с м. import platform; help(platform)). Е с л и э т о Windows, т о м ы о п р е д е л я е м д и с к, с о д е р ж а щ и й д о м а ш н и й к а т а л о г, п у т ь к д о м а ш н е м у к а т а л о г у н а н ё м и и м я ф а й л а, в к о т о -р о м х о т и м с о х р а н и т ь и н ф о р м а ц и ю. С л о ж и в в с е э т и т р и ч а с т и, м ы п о л у ч а е м п о л н ы й п у т ь к ф а й л у. Д л я д р у г и х п л а т ф о р м н а м н у ж н о з н а т ь т о л ь к о п у т ь к д о м а ш н е м у к а т а л о г у п о л ь з о в а т е л я, и м ы п о л у ч и м п о л н ы й п у т ь к ф а й л у.

 

П р и п о м о щ и ф у н к ц и и os. path. join() м ы о б ъ е д и н я е м т р и ч а с т и п у т и к ф а й -л у в м е с т е. М ы и с п о л ь з у е м э т у ф у н к ц и ю в м е с т о п р о с т о г о о б ъ е д и н е н и я с т р о к д л я т о г о, ч т о б ы г а р а н т и р о в а т ь, ч т о п о л н ы й п у т ь к ф а й л у з а п и с а н в ф о р м а т е, о ж и д а е м о м о п е р а ц и о н н о й с и с т е м о й.

 

Д а л е е м ы к о н ф и г у р и р у е м м о д у л ь logging т а к и м о б р а з о м, ч т о б ы о н з а п и с ы -в а л в с е с о о б щ е н и я в о п р е д е л ё н н о м ф о р м а т е в у к а з а н н ы й ф а й л.

 

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

 

log – а н г л. «ж у р н а л », «в е с т и ж у р н а л » (п р и м. п е р е в. )


 

17. 2. М о д у л ь logging                                                                                                                                              127


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

 

 

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

 

 

17. 3 С е р и я «М о д у л ь н е д е л и »

 

с т а н д а р т н о й б и б л и о т е к е м о ж н о н а й т и е щ ё м н о г о п о л е з н о г о. Н а п р и м е р, о т л а д к а, о б р а -б о т к а п а р а м е т р о в к о м а н д н о й с т р о к и, р е г у л я р н ы е в ы р а ж е н и я и т а к д а л е е.

 

Л у ч ш и й с п о с о б д а л ь н е й ш е г о и з у ч е н и я с т а н д а р т н о й б и б л и о т е к и – ч и т а т ь з а м е ч а т е л ь -н у ю с е р и ю Д у г а Х е л м а н а «М о д у л ь н е д е л и » и л и о ф и ц и а л ь н у ю д о к у м е н т а ц и ю Python.

 

 

17. 4 Р е з ю м е

 

М ы и з у ч и л и л и ш ь н е к о т о р ы е в о з м о ж н о с т и н е к о т о р ы х м о д у л е й с т а н д а р т н о й б и б л и о т е -к и Python. Я н а с т о я т е л ь н о р е к о м е н д у ю п р о с м о т р е т ь д о к у м е н т а ц и ю п о с т а н д а р т н о й б и б -л и о т е к е Python, ч т о б ы у в и д е т ь в с е д о с т у п н ы е м о д у л и.

 

Д а л е е м ы о б р а т и м с я к н е к о т о р ы м а с п е к т а м, к о т о р ы е с д е л а ю т в а ш у э к с к у р с и ю п о Python б о л е е «з а в е р ш ё н н о й ».


 

 

128                                                                                                Г л а в а 17. С т а н д а р т н а я б и б л и о т е к а


 

Д о п о л н и т е л ь н о

 

 

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

 

 

18. 1 П е р е д а ч а к о р т е ж е й

 

Х о т е л о с ь л и в а м к о г д а -н и б у д ь, ч т о б ы ф у н к ц и я в о з в р а щ а л а н е о д и н р е з у л ь т а т, а д в а? Э т о в о з м о ж н о. В с ё, ч т о д л я э т о г о н у ж н о, – и с п о л ь з о в а т ь к о р т е ж.

 

defget_error_details():

 

...         return(2, 'о п и с а н и е о ш и б к и No2')

 

...

 

errnum, errstr = get_error_details()

errnum

 

 

errstr

 

'о п и с а н и е о ш и б к и No2'

 

О б р а т и т е в н и м а н и е, ч т о и с п о л ь з о в а н и е в ы р а ж е н и я “a, b = < н е к о т о р о е в ы р а ж е н и е > ” и н т е р п р е т и р у е т р е з у л ь т а т к а к к о р т е ж и з д в у х з н а ч е н и й.

 

Ч т о б ы и н т е р п р е т и р о в а т ь р е з у л ь т а т к а к “(a, < в с ё о с т а л ь н о е > )”, н у ж н о п р о с т о п о с т а в и т ь з в ё з д о ч к у, к а к э т о д е л а л о с ь д л я п а р а м е т р о в ф у н к ц и й:

 

a, *b = [1, 2, 3, 4]

a

 

 

b

 

[2, 3, 4]

 

Э т о т а к ж е п о д р а з у м е в а е т, ч т о п о м е н я т ь м е с т а м и д в а з н а ч е н и я в Python б ы с т р е е в с е г о м о ж н о т а к:

 

a = 5; b = 8

a, b = b, a

a, b

 

(8, 5)


 

 


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

 

 

18. 2 С п е ц и а л ь н ы е м е т о д ы

 

Е с т ь р я д м е т о д о в, и г р а ю щ и х о с о б у ю р о л ь д л я к л а с с о в. Н а п р и м е р, __init__ и __del__.

 

С п е ц и а л ь н ы е м е т о д ы с л у ж а т д л я т о г о, ч т о б ы и м и т и р о в а т ь п о в е д е н и е в с т р о е н н ы х т и п о в д а н н ы х. Н а п р и м е р, в с ё, ч т о п о т р е б у е т с я д л я и с п о л ь з о в а н и я о п е р а ц и и и н д е к с и р о в а н и я x[и н д е к с ] п р и м е н и т е л ь н о к с в о е м у к л а с с у (в т а к о м в и д е, к а к э т о д е л а л о с ь д л я с п и с к о в

 

к о р т е ж е й ), э т о р е а л и з о в а т ь м е т о д __getitem__(). К с т а т и, и м е н н о э т о т м е т о д Python и с п о л ь з у е т д л я с а м о г о к л а с с а list!

 

Н е к о т о р ы е п о л е з н ы е с п е ц и а л ь н ы е м е т о д ы п е р е ч и с л е н ы в т а б л и ц е н и ж е. В с е д р у г и е м е -т о д ы м о ж н о п о с м о т р е т ь в д о к у м е н т а ц и и.

 

И м я О п и с а н и е
__init__(self, …) Э т о т м е т о д в ы з ы в а е т с я п р я м о п е р е д т е м, к а к в н о в ь с о з д а н н ы й
  о б ъ е к т в о з в р а щ а е т с я д л я и с п о л ь з о в а н и я.
   
__del__(sel ) В ы з ы в а е т с я п е р е д у н и ч т о ж е н и е м о б ъ е к т а
__str__(sel ) В ы з ы в а е т с я п р и и с п о л ь з о в а н и и ф у н к ц и и print и л и str().
__lt__(self, other) В ы з ы в а е т с я, к о г д а и с п о л ь з у е т с я о п е р а т о р «м е н ь ш е » (< ).
  С у щ е с т в у ю т и а н а л о г и ч н ы е м е т о д ы д л я в с е х о п е р а т о р о в (+, >,
  и т. д. )
   
__getitem__(self, key) В ы з ы в а е т с я п р и и с п о л ь з о в а н и и о п е р а т о р а и н д е к с и р о в а н и я
  x[и н д е к с ]
   
__len__(sel ) В ы з ы в а е т с я п р и о б р а щ е н и и к в с т р о е н н о й ф у н к ц и и len() д л я
  о б ъ е к т а -п о с л е д о в а т е л ь н о с т и.
   

 

18. 3 Б л о к и в о д н о в ы р а ж е н и е

 

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

 

flag = True

ifflag: print('Д а ')

 

Д а

 

О б р а т и т е в н и м а н и е, ч т о е д и н с т в е н н ы й о п е р а т о р р а с п о л о ж е н в т о й ж е с т р о к е, а н е о т д е л ь -н ы м б л о к о м. Э т о т с п о с о б м о ж е т п о д к у п и т ь т е м, ч т о я к о б ы «с о к р а щ а е т » п р о г р а м м у, н о я н а с т о я т е л ь н о р е к о м е н д у ю и з б е г а т ь е г о в о в с е х с л у ч а я х, к р о м е п р о в е р к и о ш и б о к. П р е ж д е в с е г о, п о т о м у ч т о г о р а з д о л е г ч е д о б а в л я т ь к о м а н д ы, к о г д а у ж е е с т ь н е о б х о д и м ы й у р о в е н ь о т с т у п а.


 

130                                                                                                                          Г л а в а 18. Д о п о л н и т е л ь н о


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

 

 

18. 4 Lambda-ф о р м ы

 

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

 

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

 

points = [ { 'x': 2, 'y': 3 }, { 'x': 4, 'y': 1 } ] points. sort(key=lambda i: i['y']) print(points)

 

В ы в о д:

 

$ python3 lambda. py

 

[{'x': 4, 'y': 1}, {'x': 2, 'y': 3}]

 

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

 

О б р а т и т е в н и м а н и е н а т о, ч т о м е т о д sort к л а с с а list м о ж е т п р и н и м а т ь п а р а -м е т р key, о п р е д е л я ю щ и й с п о с о б с о р т и р о в к и с п и с к а (о б ы ч н о м ы д у м а е м т о л ь -к о о с о р т и р о в к е п о в о з р а с т а н и ю и л и п о у б ы в а н и ю ). В д а н н о м с л у ч а е м ы х о т и м п р о в е с т и с о р т и р о в к у п о с о б с т в е н н о м у п р и н ц и п у, д л я ч е г о н а м н е о б х о д и м о н а п и с а т ь с о о т в е т с т в у ю щ у ю ф у н к ц и ю. Н о в м е с т о т о г о, ч т о б ы с о з д а в а т ь о т д е л ь -н ы й б л о к def д л я о п и с а н и я ф у н к ц и и, к о т о р а я б у д е т и с п о л ь з о в а т ь с я т о л ь к о в э т о м м е с т е, м ы п р и м е н я е м л я м б д а -в ы р а ж е н и е.

 

 

18. 5 Г е н е р а т о р ы с п и с к о в

 

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

 

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

 

listone = [2, 3, 4]

 

listtwo = [2*i for i in listone if i > 2]

 

print(listtwo)

 

В ы в о д:

 

python3 list_comprehension. py [6, 8]

 

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


 

 

18. 4. Lambda-ф о р м ы                                                                                                                                              131


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

 

 

э т о м п р и м е р е м ы с о з д а ё м н о в ы й с п и с о к, у к а з а в о п е р а ц и ю, к о т о р у ю н е о б -х о д и м о п р о и з в е с т и (2 * i), к о г д а в ы п о л н я е т с я н е к о т о р о е у с л о в и е (if i > 2). О б р а т и т е в н и м а н и е, ч т о и с х о д н ы й с п и с о к п р и э т о м н е и з м е н я е т с я.

 

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

 

 

18. 6 П е р е д а ч а к о р т е ж е й и с л о в а р е й в ф у н к ц и и

 

Д л я п о л у ч е н и я п а р а м е т р о в, п е р е д а н н ы х ф у н к ц и и, в в и д е к о р т е ж а и л и с л о в а р я, с у щ е с т в у -ю т с п е ц и а л ь н ы е п р и с т а в к и “*” и л и “**” с о о т в е т с т в е н н о. Э т о о с о б е н н о п о л е з н о в с л у ч а я х, к о г д а ф у н к ц и я м о ж е т п р и н и м а т ь п е р е м е н н о е ч и с л о п а р а м е т р о в.

 

defpowersum(power, *args):

 

...         '''В о з в р а щ а е т с у м м у а р г у м е н т о в, в о з в е д ё н н ы х в у к а з а н н у ю с т е п е н ь. '''

 

...         total = 0

 

...         foriinargs:

 

...                    total += pow(i, power)

 

...         returntotal

 

...

 

powersum(2, 3, 4)

powersum(2, 10)

 

П о с к о л ь к у п е р е д п е р е м е н н о й args у к а з а н а п р и с т а в к а “*”, в с е д о п о л н и т е л ь н ы е а р г у -м е н т ы, п е р е д а н н ы е ф у н к ц и и, с о х р а н я т с я в args в в и д е к о р т е ж а. В с л у ч а е и с п о л ь з о в а -н и я п р и с т а в к и “**” в с е д о п о л н и т е л ь н ы е п а р а м е т р ы б у д у т р а с с м а т р и в а т ь с я к а к п а р ы к л ю ч /з н а ч е н и е в с л о в а р е.

 

 

18. 7 exec и eval

 

Ф у н к ц и я exec с л у ж и т д л я в ы п о л н е н и я к о м а н д Python, с о д е р ж а щ и х с я в с т р о к е и л и ф а й -л е, в о т л и ч и е о т с а м о г о т е к с т а п р о г р а м м ы. Н а п р и м е р, в о в р е м я в ы п о л н е н и я п р о г р а м м ы м о ж н о с ф о р м и р о в а т ь с т р о к у, с о д е р ж а щ у ю т е к с т п р о г р а м м ы н а Python, и з а п у с т и т ь е г о п р и п о м о щ и exec:

 

exec('print(" З д р а в с т в у й, М и р! " )')

 

З д р а в с т в у й, М и р!

 

А н а л о г и ч н о, ф у н к ц и я eval п о з в о л я е т в ы ч и с л я т ь к о р р е к т н ы е в ы р а ж е н и я Python, с о д е р -ж а щ и е с я в с т р о к е. В о т п р о с т о й п р и м е р.


 

 

132                                                                                                                          Г л а в а 18. Д о п о л н и т е л ь н о


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

 

eval('2*3')

 

 

18. 8 О п е р а т о р assert

 

О п е р а т о р assert с у щ е с т в у е т д л я т о г о, ч т о б ы у к а з а т ь, ч т о н е ч т о я в л я е т с я и с т и н о й. Н а п р и -м е р, е с л и т р е б у е т с я г а р а н т и р о в а т ь, ч т о в с п и с к е б у д е т х о т я б ы о д и н э л е м е н т, и в ы з в а т ь о ш и б к у, е с л и э т о н е т а к, т о о п е р а т о р assert и д е а л ь н о п о д о й д ё т д л я т а к о й з а д а ч и. К о г д а з а я в л е н н о е в ы р а ж е н и е л о ж н о, в ы з ы в а е т с я о ш и б к а AssertionError.

 

mylist = ['item']

assertlen(mylist)> =1

mylist. pop()

 

'item'

 

mylist

[]

assertlen(mylist)> =1Traceback (most recent call last):

File " < stdin> ", line 1, in < module> AssertionError

 

Т е м н е м е н е е, о п е р а т о р assert с л е д у е т и с п о л ь з о в а т ь б л а г о р а з у м н о. В б о л ь ш и н с т в е с л у ч а -е в г о р а з д о л у ч ш е «о т л а в л и в а т ь » и с к л ю ч е н и я и л и б о р е ш а т ь с о о т в е т с т в у ю щ у ю п р о б л е м у а в т о м а т и ч е с к и, л и б о в ы д а в а т ь п о л ь з о в а т е л ю с о о б щ е н и е о б о ш и б к е и з а в е р ш а т ь р а б о т у п р о г р а м м ы.

 

 

18. 9 Ф у н к ц и я repr

 

Ф у н к ц и я repr и с п о л ь з у е т с я д л я п о л у ч е н и я к а н о н и ч е с к о г о с т р о к о в о г о п р е д с т а в л е н и я о б ъ е к т а. Л ю б о п ы т н о, ч т о в б о л ь ш и н с т в е с л у ч а е в eval(repr(object)) == object.

 

i = []

i. append('item')

repr(i)

" ['item']"

eval(repr(i)) ['item']

eval(repr(i)) == i

True

 

П о б о л ь ш о м у с ч ё т у, ф у н к ц и я repr с л у ж и т д л я п о л у ч е н и я п е ч а т а е м о г о п р е д с т а в л е н и я о б ъ е к т а. О п р е д е л и в м е т о д __repr__ в с о б с т в е н н о м к л а с с е, м о ж н о у к а з а т ь, ч т о о н б у д е т в о з в р а щ а т ь п о в ы з о в у ф у н к ц и и repr.


 

 

18. 8. О п е р а т о р assert                                                                                                                                            133


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

 

 

18. 10 У п р а в л я ю щ и е п о с л е д о в а т е л ь н о с т и

 

П о п р о б у й т е о т в е т и т ь н а в о п р о с: К а к у к а з а т ь с т р о к у, с о д е р ж а щ у ю о д и н а р н у ю к а в ы ч к у (')? Н а п р и м е р, с т р о к у “What's your name? ”. Е ё в е д ь н е л ь з я з а п и с а т ь п р о с т о к а к “'What's your name? '”, п о т о м у ч т о т о г д а Python н е с м о ж е т о п р е д е л и т ь, г д е н а ч а л о с т р о к и, и г д е к о н е ц.

 

т а к о м с л у ч а е п р и д ё т с я к а к и м -т о о б р а з о м у к а з а т ь, ч т о д а н н а я о д и н а р н а я к а в ы ч к а н е о б о з н а ч а е т к о н ц а с т р о к и. Э т о м о ж н о с д е л а т ь п р и п о м о щ и т а к н а з ы в а е м о й у п р а в л я ю щ е й п о с л е д о в а т е л ь н о с т и . У к а ж и т е о д и н а р н у ю к а в ы ч к у к а к \'–ч е р е з о б р а т н у ю к о с у ю ч е р т у. Т е п е р ь н а ш а с т р о к а б у д е т в ы г л я д е т ь т а к: 'What\'s your name? '.

 

Д р у г о й с п о с о б з а п и с и т а к о й с п е ц и ф и ч е с к о й с т р о к и – " What's your name? ", т. е. с и с п о л ь -з о в а н и е м д в о й н ы х к а в ы ч е к. А н а л о г и ч н о с л е д у е т и с п о л ь з о в а т ь у п р а в л я ю щ у ю п о с л е д о в а -т е л ь н о с т ь д л я в с т а в к и д в о й н о й к а в ы ч к и в с т р о к у, о г р а н и ч е н н у ю д в о й н ы м и к а в ы ч к а м и. С а м а ж е о б р а т н а я н а к л о н н а я ч е р т а у к а з ы в а е т с я у п р а в л я ю щ е й п о с л е д о в а т е л ь н о с т ь ю \\.

 

к а к з а п и с а т ь д в у с т р о ч н у ю с т р о к у? О д и н и з в а р и а н т о в н а м у ж е з н а к о м – з а к л ю ч и т ь с т р о к у в т р о й н ы е к а в ы ч к и, к а к б ы л о п о к а з а н о р а н е е . Н о е с т ь и д р у г о й – и с п о л ь з о в а т ь у п р а в л я ю щ у ю п о с л е д о в а т е л ь н о с т ь д л я с и м в о л а п е р е в о д а с т р о к и \n. Н а п р и м е р: “Э т о п е р -в а я с т р о к а \nЭ т о в т о р а я с т р о к а ”. П о л е з н о з н а т ь е щ ё о д н у у п р а в л я ю щ у ю п о с л е д о в а т е л ь -н о с т ь – т а б у л я ц и ю (\t). У п р а в л я ю щ и х п о с л е д о в а т е л ь н о с т е й с у щ е с т в у е т н а м н о г о б о л ь ш е, н о з д е с ь у п о м я н у т ы т о л ь к о н а и б о л е е в а ж н ы е.

 

С л е д у е т о т м е т и т ь, ч т о о д и н а р н а я н а к л о н н а я ч е р т а в к о н ц е с т р о к и л и ш ь у к а з ы в а е т н а т о, ч т о п р о д о л ж е н и е и д ё т с т р о к о й н и ж е, н о н е в с т а в л я е т п е р е в о д а с т р о к и. Н а п р и м е р:

 

" Э т о п е р в о е п р е д л о ж е н и е. \

 

Э т о в т о р о е п р е д л о ж е н и е. "

 

э к в и в а л е н т н о з а п и с и " Э т о п е р в о е п р е д л о ж е н и е. Э т о в т о р о е п р е д л о ж е н и е. ".

 

 

18. 11 Н е о б р а б а т ы в а е м ы е с т р о к и

 

Д л я з а п и с и с т р о к и, в к о т о р о й н е б у д е т п р о в о д и т ь с я н и к а к о й с п е ц и а л ь н о й о б р а б о т к и, к а к, н а п р и м е р, у п р а в л я ю щ и х п о с л е д о в а т е л ь н о с т е й, п е р е д с т р о к о й у к а з ы в а е т с я п р и с т а в к а “r” и л и “R”1. Н а п р и м е р, r" П е р е в о д с т р о к и о б о з н а ч а е т с я \n".

 

З а м е ч а н и е д л я п о л ь з о в а т е л е й р е г у л я р н ы х в ы р а ж е н и й

 

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

 

п р о т и в н о м с л у ч а е в а с ж д ё т м н о г о в о з н и с о б р а т н ы м и к о с ы м и ч ё р т о ч к а м и. Н а п р и м е р, о б р а т н ы е с с ы л к и м о ж н о о б о з н а ч а т ь к а к '\\1' и л и r'\1'.

 

“r” – о т а н г л. «raw» – «с ы р о й, н е о б р а б о т а н н ы й » (п р и м. п е р е в. )


 

 

134                                                                                                                          Г л а в а 18. Д о п о л н и т е л ь н о


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

 

 

18. 12 Р е з ю м е

 

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

 

Д а л е е м ы о б с у д и м, к а к п р о д о л ж а т ь и с с л е д о в а т ь Python.


 

18. 12. Р е з ю м е                                                                                                                                                               135


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


 

136                                                                                                                          Г л а в а 18. Д о п о л н и т е л ь н о


 

Ч т о д а л ь ш е

 

 

Д о б р о с о в е с т н ы й ч и т а т е л ь, д о ч и т а в ш и й к н и г у д о с и х п о р, а т а к ж е м н о г о п р а к т и к о в а в -ш и й с я в н а п и с а н и и п р о г р а м м, н а в е р н я к а у ж е о с в о и л с я с Python. И к о н е ч н о, в ы у ж е п о -п р о б о в а л и р е а л и з о в а т ь к а к и е -н и б у д ь с о б с т в е н н ы е и д е и н а Python, ч т о б ы п о т р е н и р о в а т ь -с я. Н е т? Т о г д а с т о и т н а ч а т ь! Н о в т а к о м с л у ч а е в о з н и к а е т в о п р о с: «Ч т о ж е д е л а т ь д а л ь -ш е? ».

 

Я п р е д л а г а ю в а м с п р а в и т ь с я с о с л е д у ю щ е й з а д а ч е й.

 

З а д а ч а

 

С о з д а й т е с о б с т в е н н у ю п р о г р а м м у «А д р е с н а я к н и г а », р а б о т а ю щ у ю и з к о м а н д н о й с т р о -к и и п о з в о л я ю щ у ю п р о с м а т р и в а т ь, д о б а в л я т ь, и з м е н я т ь, у д а л я т ь и л и и с к а т ь к о н т а к т н ы е д а н н ы е в а ш и х з н а к о м ы х. К р о м е т о г о, э т а и н ф о р м а ц и я т а к ж е д о л ж н а с о х р а н я т ь с я н а д и с -к е д л я п о с л е д у ю щ е г о д о с т у п а.

 

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

 

П о д с к а з к а (н е ч и т а т ь! )

 

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

 

К а к т о л ь к о в ы с п р а в и т е с ь с э т и м, в ы с м е л о м о ж е т е н а з ы в а т ь с я п р о г р а м м и с т о м н а Python.

 

т е п е р ь н е м е д л е н н о н а п и ш и т е м н е п и с ь м о ; -). Э т о н е о б я з а т е л ь н ы й ш а г, н о в е с ь м а р е -к о м е н д у е м ы й. Т а к ж е п о д у м а й т е о п о к у п к е б у м а ж н о й в е р с и и к н и г и, ч т о б ы п о д д е р ж а т ь е ё д а л ь н е й ш у ю р а з р а б о т к у.

 

Е с л и э т а з а д а ч к а п о к а з а л а с ь в а м с л и ш к о м л ё г к о й, п о п р о б у й т е е щ ё о д н у:

 

З а д а ч а

 

Р е а л и з у й т е к о м а н д у replace. Э т а к о м а н д а з а м е н я е т о д н у с т р о к у д р у г о й в с п и с к е п е р е д а н -н ы х е й ф а й л о в.


 


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

 

 

К о м а н д а replace м о ж е т б ы т ь л ю б о й ж е л а е м о й с л о ж н о с т и: о т п р о с т о й з а м е н ы с т р о к д о п о и с к а п о ш а б л о н у (р е г у л я р н о м у в ы р а ж е н и ю ).

 

в о т е щ ё н е к о т о р ы е в о з м о ж н ы е н а п р а в л е н и я в а ш е г о д а л ь н е й ш е г о п у т е ш е с т в и я п о м и -

 

р у Python:

 

 

19. 1 У п р а ж н е н и я

 

Н а Stack Overflow е с т ь н е п л о х о е о б с у ж д е н и е у п р а ж н е н и й н а Python, п о м о г а ю щ и х о т т о -ч и т ь в а ш е м а с т е р с т в о.

 

 

19. 2 П р и м е р ы п р о г р а м м

 

Л у ч ш и й с п о с о б о в л а д е т ь я з ы к о м п р о г р а м м и р о в а н и я – э т о п и с а т ь м н о г о п р о г р а м м и ч и -т а т ь м н о г о п р о г р а м м:

 

П р о е к т PLEAC

 

Х р а н и л и щ е к о д а Rose a

 

П р и м е р ы д л я Python н а java2s

 

К н и г а р е ц е п т о в Python – ц е н н е й ш а я к о л л е к ц и я р е ц е п т о в и п о д с к а з о к, к а к р е ш а т ь т е и л и и н ы е п р о б л е м ы п р и п о м о щ и Python. О б я з а т е л ь н а к п р о ч т е н и ю к а ж д ы м п р о -г р а м м и с т о м н а Python.

 

М о д у л ь н е д е л и – е щ ё о д и н з а м е ч а т е л ь н ы й п у т е в о д и т е л ь п о с т а н д а р т н о й б и б л и о -

 

т е к е Python.

 

 

19. 3 В о п р о с ы и о т в е т ы

 

О ф и ц и а л ь н ы е «М о ж н о и н е л ь з я » в Python

 

О ф и ц и а л ь н ы е Ч а В о Python

 

С п и с о к Н е Ч а с т о з а д а в а е м ы х В о п р о с о в о т Norvig

 

В о п р о с ы и о т в е т ы и з и н т е р в ь ю о Python

 

В о п р о с ы н а StackOverflow с п о м е т к о й «python»

 

 

19. 4 С о в е т ы и р е к о м е н д а ц и и

 

Т р ю к и и у л о в к и Python

 

С к о л а ч и в а е м п р о г р а м м ы п р и п о м о щ и Python

 

О ч а р о в а т е л ь н ы й Python – з а м е ч а т е л ь н а я с е р и я с т а т е й о Python Д э в и д а М е р ц а.


 

 

138                                                                                                                                     Г л а в а 19. Ч т о д а л ь ш е


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

 

 

19. 5 У ч е б н и к и

 

В с е о б ъ е м л ю щ и й с п и с о к у ч е б н и к о в п о Python о т Awaretek

 

 

19. 6 В и д е о

 

PyVideo

 

 

19. 7 О б с у ж д е н и е

 

Е с л и в ы з а с т р я л и н а к а к о й -т о п р о б л е м е в Python и н е з н а е т е, к о г о с п р о с и т ь, т о г д а с п и с о к р а с с ы л к и python-tutor п о д о й д ё т н а и л у ч ш и м о б р а з о м.

 

Т е м н е м е н е е, с н а ч а л а п р о д е л а й т е в с ю д о м а ш н ю ю р а б о т у и п о п ы т а й т е с ь р е ш и т ь п р о б л е -м у с а м о с т о я т е л ь н о.

 

 

19. 8 Н о в о с т и

 

Е с л и в а с и н т е р е с у ю т п о с л е д н и е н о в о с т и м и р а Python, о т с л е ж и в а й т е и х н а о ф и ц и а л ь н о й п л а н е т е Python.

 

 

19. 9 У с т а н о в к а б и б л и о т е к

 

К а т а л о г е п а к е т о в Python с у щ е с т в у е т к о л о с с а л ь н о е к о л и ч е с т в о о т к р ы т ы х б и б л и о т е к, к о -т о р ы е в ы м о ж е т е и с п о л ь з о в а т ь в с в о и х п р о г р а м м а х. Д л я и х у с т а н о в к и м о ж н о в о с п о л ь з о -в а т ь с я pip.

 

 

19. 10 Г р а ф и ч е с к и е п р о г р а м м ы

 

Д л я с о з д а н и я с о б с т в е н н о й г р а ф и ч е с к о й п р о г р а м м ы н а Python п о н а д о б и т с я к а к а я -н и б у д ь б и б л и о т е к а Г И П (г р а ф и ч е с к о г о и н т е р ф е й с а п о л ь з о в а т е л я ) с о с в о и м и п р и в я з к а м и к Python. П р и в я з к и п о з в о л я ю т п и с а т ь п р о г р а м м у н а Python, и с п о л ь з у я б и б л и о т е к и, к о т о -р ы е с а м и п о с е б е н а п и с а н ы н а C, C++ и л и д р у г и х я з ы к а х.

 

В ы б о р Г И П д л я Python д о с т а т о ч н о о б ш и р е н:

 

Kivy

 

h p: //kivy. org


 

 

19. 5. У ч е б н и к и                                                                                                                                                             139


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

 

 

PyGTK

 

Э т о п р и в я з к и Python к и н с т р у м е н т а р и ю GTK+, н а о с н о в е к о т о р о г о п о с т р о е н GNOME. У GTK+ е с т ь м н о г о с в о и х о с о б е н н о с т е й, н о к а к т о л ь к о в ы о с в о и т е с ь, в ы с м о ж е т е с о з д а в а т ь Г И П о ч е н ь б ы с т р о. Ч т о к а с а е т с я д и з а й н е р а г р а ф и ч е с к о г о и н т е р -ф е й с а Glade, т о о н п р о с т о н е з а м е н и м. Д о к у м е н т а ц и я ж е в с ё е щ ё т р е б у е т н е к о т о р ы х у л у ч ш е н и й. GTK+ х о р о ш о р а б о т а е т в GNU/Linux, н о е г о п о р т н а Windows п о к а н е з а к о н ч е н. П р и п о м о щ и GTK+ м о ж н о с о з д а в а т ь к а к с в о б о д н ы е, т а к и п р о п р и е т а р н ы е п р о г р а м м ы. Д л я н а ч а л а п р о ч и т а й т е У ч е б н и к п о PyGTK.

 

PyQt

 

Э т о п р и в я з к и Python к и н с т р у м е н т а р и ю Qt, н а о с н о в е к о т о р о г о п о с т р о е н а KDE. Qt ч р е з в ы ч а й н о п р о с т в и с п о л ь з о в а н и и, о с о б е н н о б л а г о д а р я Qt Designer и и з у м и т е л ь -н о й д о к у м е н т а ц и и Qt. PyQt б е с п л а т н о, е с л и и с п о л ь з у е т с я д л я с о з д а н и я с в о б о д н ы х п р о г р а м м (с л и ц е н з и е й GPL). Д л я с о з д а н и я з а к р ы т ы х п р о п р и е т а р н ы х п р о г р а м м в а м п р и д ё т с я е г о к у п и т ь. Н а ч и н а я с Qt 4. 5, р а з р е ш а е т с я с о з д а в а т ь п р и п о м о щ и н е г о н е т о л ь к о GPL’н ы е п р о г р а м м ы. Д л я н а ч а л а п р о ч и т а й т е к р а т к о е п о с о б и е п о PyQt и л и К н и г у PyQt.

 

wxPython

 

Э т о п р и в я з к и Python к и н с т р у м е н т а р и ю wxWidgets. wxPython н е т а к п р о с т в о с в о е -н и и, н о з а т о о н п е р е н о с и м и р а б о т а е т н а GNU/Linux, Windows, Mac и д а ж е н а в с т р а и -в а е м ы х п л а т ф о р м а х. М н о г и е с р е д ы р а з р а б о т к и д л я wxPython, т а к и е к а к SPE (Stani’s Python Editor) и wxGlade в к л ю ч а ю т д и з а й н е р ы г р а ф и ч е с к о г о и н т е р ф е й с а. П р и п о -м о щ и wxPython м о ж н о с о з д а в а т ь к а к с в о б о д н ы е, т а к и п р о п р и е т а р н ы е п р о г р а м м ы. Д л я н а ч а л а п р о ч и т а й т е у ч е б н и к п о wxPython.

 

 

19. 11 Р е з ю м е п о и н с т р у м е н т а м Г И П

 

Д р у г и е в а р и а н т ы м о ж н о н а й т и н а wiki-с т р а н и ц е GuiProgramming о ф и ц и а л ь н о г о с а й т а Python.

 

с о ж а л е н и ю, н е с у щ е с т в у е т н е к о е г о е д и н о г о с т а н д а р т н о г о и н с т р у м е н т а д л я с о з д а н и я г р а ф и ч е с к и х п р о г р а м м н а Python. Я б ы р е к о м е н д о в а л в ы б и р а т ь о д и н и з и н с т р у м е н т о в, о п и с а н н ы х в ы ш е, н а и б о л е е п о д х о д я щ и й д л я к о н к р е т н о й с и т у а ц и и. В о -п е р в ы х, о п р е д е -л и т е с ь, с о г л а с н ы л и в ы п л а т и т ь з а и с п о л ь з о в а н и е э т о г о и н с т р у м е н т а. В о -в т о р ы х, о п р е -д е л и т е с ь, н а к а к и х п л а т ф о р м а х д о л ж н а р а б о т а т ь в а ш а п р о г р а м м а: т о л ь к о н а Windows, н а Mac и GNU/Linux и л и н а в с е х с р а з у. И в -т р е т ь и х, е с л и в ы в ы б р а л и п л а т ф о р м у GNU/Linux, т о в к а к о й с р е д е в ы р а б о т а е т е: в KDE и л и GNOME.

 

Д л я б о л е е п о д р о б н о г о а н а л и з а с м. с т р а н и ц у 26 С т а т е й о Python, Т о м 3, В ы п у с к 1.


 

140                                                                                                                                     Г л а в а 19. Ч т о д а л ь ш е


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

 

 

19. 12 Р а з л и ч н ы е р е а л и з а ц и и

 

Я з ы к п р о г р а м м и р о в а н и я о б ы ч н о с о с т о и т и з д в у х ч а с т е й: с о б с т в е н н о я з ы к а и п р о г р а м м -н о г о о б е с п е ч е н и я. Я з ы к – э т о т о, к а к м ы ч т о -л и б о п и ш е м, а п р о г р а м м н о е о б е с п е ч е н и е – э т о т о, ч т о з а п у с к а е т н а ш и п р о г р а м м ы.

 

Д о с и х п о р д л я в ы п о л н е н и я н а ш и х п р о г р а м м м ы и с п о л ь з о в а л и CPython. О н н а з ы в а е т с я «CPython», п о т о м у ч т о н а п и с а н н а я з ы к е C и я в л я е т с я К л а с с и ч е с к и м и н т е р п р е т а т о р о м Python1.

 

Н о с у щ е с т в у е т и д р у г о е п р о г р а м м н о е о б е с п е ч е н и е, с п о с о б н о е в ы п о л н я т ь п р о г р а м м ы н а

 

Python:

 

Jython

 

Р е а л и з а ц и я Python, р а б о т а ю щ а я н а п л а т ф о р м е Java. Э т о о з н а ч а е т, ч т о м о ж н о и с -п о л ь з о в а т ь б и б л и о т е к и и к л а с с ы Java в п р о г р а м м е н а Python и н а о б о р о т.

 

IronPython

 

Р е а л и з а ц и я Python, р а б о т а ю щ а я н а п л а т ф о р м е . NET, ч т о о з н а ч а е т в о з м о ж н о с т ь и с -п о л ь з о в а н и я б и б л и о т е к и к л а с с о в . NET в п р о г р а м м а х н а Python и н а о б о р о т.

 

PyPy

 

Р е а л и з а ц и я Python, н а п и с а н н а я н а Python! Э т о и с с л е д о в а т е л ь с к и й п р о е к т, с у щ е -с т в у ю щ и й д л я у с к о р е н и я и о б л е г ч е н и я р а з р а б о т к и и н т е р п р е т а т о р а, п о с к о л ь к у с а м и н т е р п р е т а т о р н а п и с а н н а д и н а м и ч е с к о м я з ы к е (в о т л и ч и е о т с т а т и ч е с к и х я з ы к о в, к а к C, Java и C# в в ы ш е у п о м я н у т ы х р е а л и з а ц и я х )

 

Stackless Python

 

Р е а л и з а ц и я Python, с п е ц и а л и з и р у ю щ а я с я н а в ы с о к о й п р о и з в о д и т е л ь н о с т и м н о г о -п о т о ч н ы х п р о г р а м м.

 

С у щ е с т в у ю т и д р у г и е р е а л и з а ц и и, т а к и е к а к CLPython – н а п и с а н н а я н а Common Lisp и IronMonkey – п о р т IronPython н а JavaScript, ч т о д а ё т в о з м о ж н о с т ь п и с а т ь б р а у з е р н ы е п р и -л о ж е н и я («Ajax») н а Python в м е с т о JavaScript.

 

К а ж д а я и з п е р е ч и с л е н н ы х р е а л и з а ц и й и м е е т с в о ю о б л а с т ь п р и м е н е н и я.

 

 

19. 13 Ф у н к ц и о н а л ь н о е п р о г р а м м и р о в а н и е (д л я х о -р о ш о п о д г о т о в л е н н ы х ч и т а т е л е й )

 

Д л я н а п и с а н и я б о л ь ш и х п р о г р а м м о п р е д е л ё н н о н е о б х о д и м о и з у ч и т ь ф у н к ц и о н а л ь н ы й п о д х о д к п р о г р а м м и р о в а н и ю, в о т л и ч и е о т о б ъ е к т н о -о р и е н т и р о в а н н о г о п о д х о д а, к о т о -р ы й м ы п р о х о д и л и в р а з д е л е «О б ъ е к т н о -о р и е н т и р о в а н н о е п р о г р а м м и р о в а н и е »:

 

П р а к т и ч е с к и е с о в е т ы п о ф у н к ц и о н а л ь н о м у п р о г р а м м и р о в а н и ю, A. M. Kuchling

 

ClassicalPythoninterpreter (п р и м. п е р е в. )


 

19. 12. Р а з л и ч н ы е р е а л и з а ц и и                                                                                                                       141


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

 

 

Г л а в а «Ф у н к ц и о н а л ь н о е п р о г р а м м и р о в а н и е » к н и г и «Dive Into Python»

 

П р е з е н т а ц и я «Ф у н к ц и о н а л ь н о е п р о г р а м м и р о в а н и е в Python»

 

 

19. 14 Р е з ю м е

 

В о т м ы и п о д о ш л и к к о н ц у н а ш е й к н и г и, н о к а к г о в о р и т с я, э т о т о л ь к о н а ч а л о к о н ц а ! Т е -п е р ь в ы з а я д л ы й п р о г р а м м и с т н а Python, и н е с о м н е н н о, г о т о в ы р е ш а т ь м н о ж е с т в о з а д а ч п р и п о м о щ и Python. Т е п е р ь в ы м о ж е т е н а ч а т ь а в т о м а т и з и р о в а т ь н а с в о ё м к о м п ь ю т е р е в с ё п о д р я д, м о ж е т е п и с а т ь с о б с т в е н н ы е и г р ы и м н о г о е -м н о г о е д р у г о е. Т а к ч т о в п е р ё д!


 

142                                                                                                                                     Г л а в а 19. Ч т о д а л ь ш е


 

П р и л о ж е н и е: FLOSS

 

 

20. 1 Free/Libre and Open Source Software (FLOSS) 1

 

о с н о в у и д е и FLOSS п о л о ж е н а к о н ц е п ц и я с о о б щ е с т в а, в к о т о р о м п р и н я т о д е л и т ь с я, и о с о б е н н о д е л и т ь с я з н а н и я м и. С в о б о д н ы е п р о г р а м м ы м о ж н о с в о б о д н о и с п о л ь з о в а т ь, и з -м е н я т ь и р а с п р о с т р а н я т ь.

 

Е с л и в ы у ж е п р о ч л и э т у к н и г у, т о в ы у ж е з н а к о м ы с о с в о б о д н ы м П О, т а к к а к в ы и з у ч а л и Pythonв с ё э т о в р е м я, а Pythonя в л я е т с я с в о б о д н ы м п р о г р а м м н ы м о б е с п е ч е н и е м!

 

В о т н е с к о л ь к о п р и м е р о в с в о б о д н о г о П О, п о к о т о р ы м м о ж н о с о с т а в и т ь н е к о т о р о е п р е д -с т а в л е н и е о т о м, ч т о с п о с о б н о с о з д а т ь т а к о е с о о б щ е с т в о:

 

Linux. Э т о с в о б о д н о е я д р о о п е р а ц и о н н о й с и с т е м ы, и с п о л ь з у е м о е, н а п р и м е р, в о п е -р а ц и о н н о й с и с т е м е GNU/Linux. Р а з р а б о т к у я д р а «Linux» н а ч а л Л и н у с Т о р в а л ь д с е щ ё в с в о ю б ы т н о с т ь с т у д е н т о м. [Linux Kernel]

 

GNU. С в о б о д н а я о п е р а ц и о н н а я с и с т е м а, о с н о в а н н а я Р и ч а р д о м С т о л л м а н о м в 1983

 

г о д у. [GNU]

 

GNU/Linux. С о ч е т а н и е о п е р а ц и о н н о й с и с т е м ы GNUс я д р о м «Linux», в н а ш е в р е -м я с е р ь ё з н ы й к о н к у р е н т Microso Windows. В п р и н ц и п е, GNU/Linux я в л я е т с я с в о -б о д н ы м п р о г р а м м н ы м о б е с п е ч е н и е м, н о р а з н ы е д и с т р и б у т и в ы GNU/Linux м о г у т в к л ю ч а т ь и н е с в о б о д н ы е п р о г р а м м ы. [Free GNU/Linux distributions]

 

Ubuntu. Э т о д и с т р и б у т и в, р а з р а б а т ы в а е м ы й с о о б щ е с т в о м и с п о н с и р у е м ы й ф и р -м о й Canonical. В н а с т о я щ е е в р е м я э т о, п о ж а л у й, с а м ы й п о п у л я р н ы й д и с т р и б у т и в GNU/Linux. О н п о з в о л я е т л е г к о у с т а н а в л и в а т ь и и с п о л ь з о в а т ь м н о ж е с т в о с в о б о д -н ы х п р о г р а м м. Б о л ь ш е т о г о, о н п о з в о л я е т п р о с т о п е р е з а г р у з и т ь в а ш к о м п ь ю т е р и з а п у с т и т ь GNU/Linux с CD! Э т о д а ё т в о з м о ж н о с т ь в п о л н о й м е р е о п р о б о в а т ь н о в у ю о п е р а ц и о н н у ю с и с т е м у д о у с т а н о в к и н а ж ё с т к и й д и с к. О д н а к о, Ubuntu н е п о л н о -с т ь ю с в о б о д н а, т а к к а к в к л ю ч а е т н е к о т о р ы е п р о п р и е т а р н ы е д р а й в е р ы, м и к р о к о д и п р и л о ж е н и я. [Ubuntu]

 

LibreOffi ce. Э т о п р е в о с х о д н ы й о ф и с н ы й п а к е т, р а з р а б а т ы в а е м ы й с о о б щ е с т в о м и в к л ю ч а ю щ и й в с е б я к о м п о н е н т ы д л я с о з д а н и я т е к с т а, п р е з е н т а ц и й, э л е к т р о н н ы х т а б л и ц, р и с у н к о в и м н о г о г о д р у г о г о. О н т а к ж е п о з в о л я е т о т к р ы в а т ь и р е д а к т и р о -в а т ь ф а й л ы MS Word и MS Powerpoint. О н р а б о т а е т п р а к т и ч е с к и н а в с е х п л а т ф о р -

 

С в о б о д н о е и о т к р ы т о е п р о г р а м м н о е о б е с п е ч е н и е (п р и м. п е р е в. )


 

 


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

 

 

м а х и я в л я е т с я п о л н о с т ь ю с в о б о д н ы м и о т к р ы т ы м п р о г р а м м н ы м о б е с п е ч е н и е м. [LibreOffi ce]

 

Mozilla Firefox. Э т о в е б -б р а у з е р н о в о г о п о к о л е н и я, я в л я ю щ и й с я с и л ь н е й ш и м с о п е р -н и к о м Internet Explorer. О н о г н е н н о б ы с т р, и з а р а б о т а л ш и р о к о е п р и з н а н и е с в о и м и у д о б н ы м и и в п е ч а т л я ю щ и м и в о з м о ж н о с т я м и. А к о н ц е п ц и я р а с ш и р е н и й п о з в о л я -е т д о п о л н я т ь е г о с а м ы м и р а з н о о б р а з н ы м и п л а г и н а м и. [Mozilla Firefox]

 

Е г о «н а п а р н и к » underbird – о т л и ч н ы й к л и е н т э л е к т р о н н о й п о ч т ы, д е л а ю щ и й е ё ч т е н и е ч р е з в ы ч а й н о п р о с т ы м. [Mozilla underbird]

 

Mono. Э т о с в о б о д н а я р е а л и з а ц и я п л а т ф о р м ы Microso. NET. О н а п о з в о л я е т с о з д а -

 

в а т ь и з а п у с к а т ь . NET-п р и л о ж е н и я в GNU/Linux, Windows, FreeBSD, Mac OS и н а м н о -г и х д р у г и х п л а т ф о р м а х. [Mono], [ECMA], [. NET]

 

Apa e web server. Э т о п о п у л я р н ы й о т к р ы т ы й в е б -с е р в е р. П о с у т и, э т о с а м ы й п о -п у л я р н ы й в е б -с е р в е р н а п л а н е т е. Н а н ё м р а б о т а е т б о л е е п о л о в и н ы в с е х с а й т о в. Д а, Apache д е й с т в и т е л ь н о о б с л у ж и в а е т б о л ь ш е с а й т о в, ч е м в с е о с т а л ь н ы е в е б -с е р в е р ы

(в к л ю ч а я Microso IIS) в м е с т е в з я т ы е. [Apache]

 

MySQL. Э т о ч р е з в ы ч а й н о п о п у л я р н ы й о т к р ы т ы й с е р в е р б а з д а н н ы х. О н н а и б о л е е и з в е с т е н с в о е й о ш е л о м л я ю щ е й с к о р о с т ь ю. Э т о е г о о б о з н а ч а ю т б у к в о й «M» в с о ч е -т а н и и «LAMP», н а к о т о р о м р а б о т а е т б о л ь ш и н с т в о с а й т о в в И н т е р н е т е. [MySQL]

 

VLC Player. Э т о п р о и г р ы в а т е л ь, к о т о р ы й м о ж е т в о с п р о и з в о д и т ь в с ё, н а ч и н а я о т DivX и д о MP3, д о Ogg, д о VCD, д о DVD, д о … и к т о с к а з а л, ч т о э т о н е з а б а в н о? ; -) [VLC media player]

 

GeexBox–д и с т р и б у т и в GNU/Linux, с о з д а н н ы й д л я п р о и г р ы в а н и я ф и л ь м о в с р а з у п о с л е з а г р у з к и с CD! [GeexBox]

 

Э т о т с п и с о к п р е д н а з н а ч е н т о л ь к о л и ш ь д л я т о г о, ч т о б ы в к р а т ц е п е р е д а т ь в а м м ы с л ь, н а с а м о м ж е д е л е с у щ е с т в у е т е щ ё о г р о м н о е м н о ж е с т в о с в о б о д н о г о П О, т а к о г о к а к я з ы к Perl, я з ы к PHP, с и с т е м а у п р а в л е н и я с о д е р ж и м ы м в е б -с а й т о в Drupal, с е р в е р б а з д а н н ы х PostgreSQL, и г р а TORCS, с р е д а р а з р а б о т к и KDevelop, п р о и г р ы в а т е л ь Xine, т е к с т о в ы й р е -д а к т о р VIM, р е д а к т о р anta+, а у д и о -п л е е р Banshee, г р а ф и ч е с к и й р е д а к т о р GIMP, … э т о т с п и с о к м о ж н о п р о д о л ж а т ь в е ч н о.

 

Ч т о б ы о т с л е д и т ь с в е ж и е с л у х и в м и р е с в о б о д н о г о П О, п о с е т и т е с л е д у ю щ и е с а й т ы:

 

linux. com

 

LinuxToday

 

NewsForge

 

DistroWatch

 

У з н а т ь б о л ь ш е о с в о б о д н о м П О м о ж н о н а с л е д у ю щ и х с а й т а х:

 

SourceForge

 

FreshMeat

 

Т а к ч т о в п е р ё д – о с в а и в а т ь б е с к р а й н и й, с в о б о д н ы й и о т к р ы т ы й м и р С П О!


 

144                                                                                                              Г л а в а 20. П р и л о ж е н и е: FLOSS


 

П р и л о ж е н и е: о к н и г е

 

 

21. 1 К о л о ф о н

 

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

 

21. 1. 1 Р о ж д е н и е к н и г и

 

П р и н а п и с а н и и п е р в о г о ч е р н о в и к а э т о й к н и г и в о с н о в е м о е й с и с т е м ы б ы л а Red Hat 9. 0 Linux, н о у ж е ш е с т у ю в е р с и ю ч е р н о в и к а я п и с а л н а Fedora Core 3 Linux.

 

В н а ч а л е д л я н а п и с а н и я к н и г и я и с п о л ь з о в а л KWord (к а к я и о п и с ы в а л в П р е д и с л о в и и ).

 

 

21. 1. 2 О т р о ч е с т в о

 

П о з ж е я п е р е ш ё л н а ф о р м а т DocBook XML и и с п о л ь з о в а л Kate, н о э т о п о к а з а л о с ь м н е с л и ш к о м с к у ч н ы м. П о э т о м у я п е р е ш ё л н а OpenOffi ce, к о т о р ы й з а м е ч а т е л ь н о п о д х о д и л с о с в о и м у р о в н е м у п р а в л е н и я ф о р м а т и р о в а н и е м и в о з м о ж н о с т ь ю г е н е р и р о в а т ь PDF, н о о н в ы д а в а л с л и ш к о м н е б р е ж н ы е HTML-с т р а н и ц ы.

 

Н а к о н е ц, я о т к р ы л д л я с е б я XEmacs и п е р е п и с а л в с ю к н и г у с н у л я в ф о р м а т е DocBook XML (с н о в а ), т а к к а к р е ш и л, ч т о э т о т ф о р м а т – н а д о л г о.

 

Д л я ш е с т о й в е р с и и ч е р н о в и к а я р е ш и л и с п о л ь з о в а т ь anta+. П р и э т о м я и с п о л ь з о в а л с т а н д а р т н ы е т а б л и ц ы с т и л е й XSL, к о т о р ы е ш л и в к о м п л е к т е с Fedora Core 3 Linux. П о т о м

н а п и с а л CSS д о к у м е н т, ч т о б ы п р и д а т ь ц в е т и с т и л ь HTML-с т р а н и ц а м. Я т а к ж е н а с к о -р у ю р у к у н а п и с а л л е к с и ч е с к и й а н а л и з а т о р (к о н е ч н о, н а Python), к о т о р ы й о с у щ е с т в л я л а в т о м а т и ч е с к у ю п о д с в е т к у с и н т а к с и с а в п р и м е р а х п р о г р а м м.

 

Д л я с е д ь м о й р е д а к ц и и я и с п о л ь з о в а л MediaWiki в к а ч е с т в е о с н о в ы д л я с в о е г о с а й -т а. Т е п е р ь я в с ё р е д а к т и р у ю п р я м о н а с а й т е, а ч и т а т е л и м о г у т с р а з у ж е ч и -т а т ь /р е д а к т и р о в а т ь /о б с у ж д а т ь с о д е р ж и м о е н а в и к и -с т р а н и ц е.

 

Б л а г о д а р я р а с ш и р е н и ю ViewSourceWith д л я Firefox, к о т о р о е и н т е г р и р у е т с я с Vim, я п р о -д о л ж а л и с п о л ь з о в а т ь Vim д л я р е д а к т и р о в а н и я.


 

 


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

 

 

21. 1. 3 С е й ч а с

 

И с п о л ь з у ю Vim, Pandoc, и Mac OS X.

 

 

21. 2 О б а в т о р е

 

h p: //www. swaroopch. com/about/


 

146                                                                                                           Г л а в а 21. П р и л о ж е н и е: о к н и г е


 

П р и л о ж е н и е: И с т о р и я в е р с и й

 

 

2. 0(20/10/2012)

 

П е р е п и с а н о в ф о р м а т е PandocС п а с и б о м о е й ж е н е, к о т о р а я п е р е в е л а б о л ь ш у ю ч а с т ь т е к с т а и з ф о р м а т а Mediawiki

У п р о щ е н и е т е к с т а, у д а л е н и е т а к и х н е о б я з а т е л ь н ы х р а з д е л о в, к а к nonlocalи м е т а к л а с с ы

1. 90(04/09/2008)

 

В о з о б н о в л е н и е п о с л е п е р е р ы в а в 3. 5г о д а!

 

О б н о в л е н и е д л я Python 3. 0

 

П е р е п и с а н о в ф о р м а т е MediaWiki(с н о в а )

1. 20(13/01/2005)

 

П о л н о с т ь ю п е р е п и с а н о в anta+н а FedoraCore3с о м н о ж е с т в о м и с п р а в л е н и й и д о п о л н е н и й. М н о г о н о в ы х п р и м е р о в. З а н о в о п е р е п и с а н ф о р м а т DocBook.

1. 15(28/03/2004)

 

Н е з н а ч и т е л ь н ы е и с п р а в л е н и я.

 

1. 12(16/03/2004)

 

Д о п о л н е н и я и и с п р а в л е н и я.

 

1. 10(09/03/2004)


 

 


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

 

 

И с п р а в л е н и я о п е ч а т о к, б л а г о д а р я м н о ж е с т в у о т з ы в о в з а и н т е р е с о в а н н ы х ч и -т а т е л е й.

 

1. 00(08/03/2004)

 

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

 

0. 99 (22/02/2004)

 

Д о б а в л е н а н о в а я г л а в а о м о д у л я х. Т а к ж е д о б а в л е н ф р а г м е н т о п е р е м е н н о м ч и с -л е а р г у м е н т о в в ф у н к ц и я х.

 

0. 98 (16/02/2004)

 

Н а п и с а н с к р и п т н а Pythonи т а б л и ц а с т и л е й CSSд л я у л у ч ш е н и я в ы в о д а в XHTML, в к л ю ч а я н е д о д е л а н н ы й -н о -ф у н к ц и о н а л ь н ы й л е к с и ч е с к и й а н а л и з а -т о р д л я п о д с в е т к и с и н т а к с и с а в п р и м е р а х п р о г р а м м

 

0. 97 (13/02/2004)

 

Е щ ё о д и н з а н о в о п е р е п и с а н н ы й ч е р н о в и к в ф о р м а т е DocBook XML (с н о в а ). К н и г а с у щ е с т в е н н о у л у ч ш е н а – о н а с т а л а з н а ч и т е л ь н о б о л е е с в я з а н н о й и ч и -т а б е л ь н о й.

 

0. 93 (25/01/2004)

 

Д о б а в л е н о о п и с а н и е IDLEи д р у г и е в е щ и, о т н о с я щ и е с я к Windows.

 

0. 92 (05/01/2004)

 

И з м е н е н и я в н е с к о л ь к и х п р и м е р а х.

 

0. 91 (30/12/2003)

 

И с п р а в л е н ы о п е ч а т к и. С д е л а н ы н а б р о с к и м н о г и х р а з д е л о в.


 

148                                                                                    Г л а в а 22. П р и л о ж е н и е: И с т о р и я в е р с и й


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

 

 

0. 90 (18/12/2003)

 

Д о б а в л е н ы 2г л а в ы. Ф о р м а т OpenOffi ceс и с п р а в л е н и я м и.

0. 60 (21/11/2003)

 

П о л н о с т ь ю п е р е п и с а н о и р а с ш и р е н о.

 

0. 20 (20/11/2003)

 

И с п р а в л е н ы н е к о т о р ы е о п е ч а т к и и о ш и б к и.

 

0. 15 (20/11/2003)

 

П е р е в е д е н о в ф о р м а т DocBook XMLп р и п о м о щ и XEmacs.

0. 10 (14/11/2003)

 

С а м ы й п е р в ы й н а б р о с о к в р е д а к т о р е KWord.


 

 


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


 

150                                                                                    Г л а в а 22. П р и л о ж е н и е: И с т о р и я в е р с и й


 

П р и л о ж е н и е: И н с т р у к ц и я п о п е р е в о д у

 

 

П о л н ы й и с х о д н ы й т е к с т к н и г и д о с т у п е н в Git-р е п о з и т о р и и h ps: //github. com/swaroopch/byte_of_python.

 

С о з д а й т е о т в е т в л е н и е р е п о з и т о р и я.

 

З а т е м с к а ч а й т е р е п о з и т о р и й н а с в о й к о м п ь ю т е р. Д л я э т о г о н у ж н о б ы т ь з н а к о м ы м с Git.

 

О т р е д а к т и р у й т е ф а й л ы . pd н а с в о ё м р о д н о м я з ы к е. П р о ч и т а й т е Pandoc README, ч т о б ы п о з н а к о м и т ь с я с ф о р м а т и р о в а н и е м т е к с т а

 

З а т е м с л е д у й т е у к а з а н и я м в README д л я у с т а н о в к и п р о г р а м м, н е о б х о д и м ы х д л я к о н -в е р т и р о в а н и я и с х о д н ы х ф а й л о в в PDF и т. п.


 

 


 

Swaroop C H - Helpshift (                 ). Automatic (         SiriusXM). “A Byte of Python”.



  

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