Хелпикс

Главная

Контакты

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





import os 2 страница



 

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

 

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

 

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

 

zoo = ('п и т о н ', 'с л о н ', 'п и н г в и н ') # п о м н и т е, ч т о с к о б к и н е о б я з а т е л ь н ы print ('К о л и ч е с т в о ж и в о т н ы х в з о о п а р к е -', len(zoo))


 

12. 3. К о р т е ж                                                                                                                                                                      81


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

 

new_zoo = 'о б е з ь я н а ', 'в е р б л ю д ', zoo

 

print ('К о л и ч е с т в о к л е т о к в з о о п а р к е -', len(new_zoo))

 

print ('В с е ж и в о т н ы е в н о в о м з о о п а р к е: ', new_zoo)

 

print ('Ж и в о т н ы е, п р и в е з ё н н ы е и з с т а р о г о з о о п а р к а: ', new_zoo[2])

 

print ('П о с л е д н е е ж и в о т н о е, п р и в е з ё н н о е и з с т а р о г о з о о п а р к а -', new_zoo[2][2])

 

print ('К о л и ч е с т в о ж и в о т н ы х в н о в о м з о о п а р к е -', len(new_zoo)-1+len(new_zoo[2]))

 

В ы в о д:

 

$ python3 using_tuple. py

 

К о л и ч е с т в о ж и в о т н ы х в з о о п а р к е - 3

 

К о л и ч е с т в о к л е т о к в з о о п а р к е - 3

 

В с е ж и в о т н ы е в н о в о м з о о п а р к е: ('о б е з ь я н а ', 'в е р б л ю д ', ('п и т о н ', 'с л о н ', 'п и н г в и н '))

Ж и в о т н ы е, п р и в е з ё н н ы е и з с т а р о г о з о о п а р к а: ('п и т о н ', 'с л о н ', 'п и н г в и н ') П о с л е д н е е ж и в о т н о е, п р и в е з ё н н о е и з с т а р о г о з о о п а р к а - п и н г в и н К о л и ч е с т в о ж и в о т н ы х в н о в о м з о о п а р к е - 5

 

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

 

П е р е м е н н а я zoo о б о з н а ч а е т к о р т е ж э л е м е н т о в. К а к м ы в и д и м, ф у н к ц и я len п о з в о л я е т п о л у ч и т ь д л и н у к о р т е ж а. Э т о т а к ж е у к а з ы в а е т н а т о, ч т о к о р т е ж я в л я е т с я п о с л е д о в а т е л ь н о с т ь ю .

 

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

 

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

new_zoo м ы п о л у ч а е м, у к а з ы в а я new_zoo[2], а д о с т у п к т р е т ь е м у э л е м е н т у в н у т р и т р е т ь е г о э л е м е н т а в к о р т е ж е new_zoo – у к а з ы в а я new_zoo[2][2]. Э т о д о с т а т о ч н о п р о с т о, к а к т о л ь к о в ы п о й м ё т е п р и н ц и п.

 

С к о б к и

 

Х о т я с к о б к и и н е я в л я ю т с я о б я з а т е л ь н ы м и, я п р е д п о ч и т а ю в с е г д а у к а з ы в а т ь и х, ч т о -б ы б ы л о о ч е в и д н о, ч т о э т о к о р т е ж, о с о б е н н о в д в у с м ы с л е н н ы х с л у ч а я х. Н а п р и м е р, “print(1, 2, 3)” и “print( (1, 2, 3) )” д е л а ю т р а з н ы е в е щ и: п е р в о е в ы р а ж е н и е в ы в о д и т т р и ч и с л а, т о г д а к а к в т о р о е – к о р т е ж, с о д е р ж а щ и й э т и т р и ч и с л а.

 

 

К о р т е ж, с о д е р ж а щ и й 0 и л и 1 э л е м е н т

 

П у с т о й к о р т е ж с о з д а ё т с я п р и п о м о щ и п у с т о й п а р ы с к о б о к – “myempty = ()”. О д н а к о, с к о р т е ж е м и з о д н о г о э л е м е н т а н е в с ё т а к п р о с т о. Е г о н у ж н о у к а з ы в а т ь п р и п о м о щ и з а -

 

82                                                                                                                     Г л а в а 12. С т р у к т у р ы д а н н ы х


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

 

 

п я т о й п о с л е п е р в о г о (и е д и н с т в е н н о г о ) э л е м е н т а, ч т о б ы Python м о г о т л и ч и т ь к о р т е ж о т с к о б о к, о к р у ж а ю щ и х о б ъ е к т в в ы р а ж е н и и. Т а к и м о б р а з о м, ч т о б ы п о л у ч и т ь к о р т е ж, с о -д е р ж а щ и й э л е м е н т 2, в а м п о т р е б у е т с я у к а з а т ь “singleton = (2, )”.

 

 

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

 

С п и с о к в н у т р и с п и с к а н е т е р я е т с в о е й и н д и в и д у а л ь н о с т и, т. е. с п и с к и н е р а з в ё р т ы в а ю т с я, к а к в Perl. Э т о ж е о т н о с и т с я к к о р т е ж у в н у т р и к о р т е ж а, и л и к о р т е ж у в н у т р и с п и с к а, и л и с п и с к у в н у т р и к о р т е ж а и т. д. В Python в с е о н и р а с с м а т р и в а ю т с я к а к о б ъ е к т ы, х р а н я щ и е с я в н у т р и д р у г о г о о б ъ е к т а – т о л ь к о и в с е г о.

 

12. 4 С л о в а р ь

 

С л о в а р ь – э т о н е к и й а н а л о г а д р е с н о й к н и г и, в к о т о р о й м о ж н о н а й т и а д р е с и л и к о н т а к т -н у ю и н ф о р м а ц и ю о ч е л о в е к е, з н а я л и ш ь е г о и м я; т. е. н е к о т о р ы е к л ю ч и (и м е н а ) с в я з а н ы с о з н а ч е н и я м и (и н ф о р м а ц и е й ). З а м е т ь т е, ч т о к л ю ч д о л ж е н б ы т ь у н и к а л ь н ы м – в ы в е д ь н е с м о ж е т е п о л у ч и т ь к о р р е к т н у ю и н ф о р м а ц и ю, е с л и у в а с з а п и с а н ы д в а ч е л о в е к а с п о л -н о с т ь ю о д и н а к о в ы м и и м е н а м и.

 

О б р а т и т е т а к ж е в н и м а н и е н а т о, ч т о в с л о в а р я х в к а ч е с т в е к л ю ч е й м о г у т и с п о л ь з о в а т ь с я т о л ь к о н е и з м е н я е м ы е о б ъ е к т ы (к а к с т р о к и ), а в к а ч е с т в е з н а ч е н и й м о ж н о и с п о л ь з о в а т ь к а к н е и з м е н я е м ы е, т а к и и з м е н я е м ы е о б ъ е к т ы. Т о ч н е е г о в о р я, в к а ч е с т в е к л ю ч е й д о л ж н ы и с п о л ь з о в а т ь с я т о л ь к о п р о с т ы е о б ъ е к т ы.

 

П а р ы к л ю ч -з н а ч е н и е у к а з ы в а ю т с я в с л о в а р е с л е д у ю щ и м о б р а з о м: “d = {key1: value1, key2: value2 }”. О б р а т и т е в н и м а н и е, ч т о к л ю ч и з н а ч е н и е р а з д е л я ю т с я д в о е т о ч и е м, а п а р ы д р у г о т д р у г а о т д е л я ю т с я з а п я т ы м и, а з а т е м в с ё э т о з а к л ю ч а е т с я в ф и г у р н ы е с к о б к и.

 

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

 

С л о в а р и я в л я ю т с я э к з е м п л я р а м и /о б ъ е к т а м и к л а с с а dict.

 

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

 

# 'ab' - с о к р а щ е н и е о т 'a'ddress'b'ook

 

ab = { 'Swaroop' : 'swaroop@swaroopch. com',
  'Larry' : 'larry@wall. org',
  'Matsumoto' : 'matz@ruby-lang. org',
  'Spammer' : 'spammer@hotmail. com'
}    

 

print (" А д р е с Swaroop'а: ", ab['Swaroop'])

 

# У д а л е н и е п а р ы к л ю ч -з н а ч е н и е


 

 

12. 4. С л о в а р ь                                                                                                                                                                   83


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

 

del ab['Spammer']

 

print (' \n В а д р е с н о й к н и г е {0}к о н т а к т о в \n '. format(len(ab)))

 

for name, address in ab. items():

 

print ('К о н т а к т {0}с а д р е с о м {1}'. format(name, address))

 

Д о б а в л е н и е п а р ы к л ю ч -з н а ч е н и е

 

ab['Guido'] = 'guido@python. org'

 

if 'Guido' in ab:

 

print (" \n А д р е с Guido: ", ab['Guido'])

 

В ы в о д:

 

$ python3 using_dict. py

 

А д р е с Swaroop'а: swaroop@swaroopch. com

 

В а д р е с н о й к н и г е 3 к о н т а к т о в

 

К о н т а к т Swaroop с а д р е с о м swaroop@swaroopch. com К о н т а к т Matsumoto с а д р е с о м matz@ruby-lang. org К о н т а к т Larry с а д р е с о м larry@wall. org

 

А д р е с Guido: guido@python. org

 

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

 

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



  

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