Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования PythonΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 8

Автор Π ΠΎΠΌΠ°Π½ Π‘ΡƒΠ·ΠΈ

>>> for i, c in enumerate("ABC"):

... print i, c

...

0 A

1 B

2 C

>>> print range(4, 20, 2)

[4, 6, 8, 10, 12, 14, 16, 18]

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ опрСдСлСния свойств

Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ доступ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ встроСнным Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ свойствам. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

>>> s = "abcde"

>>> s1 = "abcde"

>>> s2 = "ab" + "cde"

>>> print "hash:", hash(s), hash(s1), hash(s2)

hash: β€” 1332677140–1332677140–1332677140

>>> print "id:", id(s), id(s1), id(s2)

id: 1076618592 1076618592 1076618656

Π—Π΄Π΅ΡΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° "abcde" получаСтся ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ для ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ для доступа ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ структурам

Π’ соврСмСнной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка Python Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ доступны Π² Π²ΠΈΠ΄Π΅ словаря благодаря функциям globals() ΠΈ locals(). ΠŸΡ€Π°Π²Π΄Π°, Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ что–либо Π² эти словари Π½Π΅ рСкомСндуСтся.

Ѐункция vars() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ Π·Π°Π΄Π°Π½, ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ locals()). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС словаря для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ форматирования:

a = 1

b = 2

c = 3

print "%(a)s + %(b)s = %(c)s" % vars()

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ компиляции ΠΈ исполнСния

Ѐункция reload() ΡƒΠΆΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ, Π° ΠΈΠ· ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ особого внимания заслуТиваСт eval(). Как слСдуСт ΠΈΠ· названия, эта функция вычисляСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ΅ Π΅ΠΉ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ вычисляСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ строится динамичСски:

a = 2

b = 3

for op in "+-*/%":

 e = "a " + op + " b"

 print e, "->", eval(e)

Π£ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ eval() ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡŽ выраТСния Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° β€” с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ глобальноС ΠΈ локальноС пространства ΠΈΠΌΠ΅Π½, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π° выраТСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅, пСрСписанный для использования с собствСнным словарСм ΠΈΠΌΠ΅Π½ Π² качСствС глобального пространства ΠΈΠΌΠ΅Π½:

for op in "+-*/%":

 e = "a " + op + " b"

 print e, "->", eval(e, {'a': 2, 'b': 3})

Π€ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ eval() Π»Π΅Π³ΠΊΠΎ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚ΡŒ. НуТно ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π±Π΅Π· Π½Π΅Π΅ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ. Из сообраТСний бСзопасности Π½Π΅ слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ eval() для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ присутствуСт Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ввода–вывода

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ input() ΠΈ raw_input() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π²Π²ΠΎΠ΄Π° со стандартного Π²Π²ΠΎΠ΄Π°. Π’ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ. Ѐункция open() слуТит для открытия Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ для чтСния, записи ΠΈΠ»ΠΈ измСнСния. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ„Π°ΠΉΠ» открываСтся для чтСния:

f = open("file.txt", "r", 1)

for line in f:

 ...

f.close()

Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°: имя Ρ„Π°ΠΉΠ»Π° (ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ), Ρ€Π΅ΠΆΠΈΠΌ открытия (Β«rΒ» β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Β«wΒ» β€” запись, Β«aΒ» β€” Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Β«w+Β», Β«a+Β», Β«r+Β» β€” ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ Β«tΒ», Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ тСкстовый Ρ„Π°ΠΉΠ». Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows). Π’Ρ€Π΅Ρ‚ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ: 0 β€” Π±Π΅Π· Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, 1 β€” построчная буфСризация, большС 1 β€” Π±ΡƒΡ„Π΅Ρ€ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² Π±Π°ΠΉΡ‚Π°Ρ….

Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Python функция open() являСтся синонимом для file().

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ

Π£ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² языкС Python ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ (Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ языка C++ - члСны–данныС ΠΈ члСны–функции). Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ эквивалСнтны:

# пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°:

class A:

 pass

a = A()

a.attr = 1

try:

 print a.attr

except:

 print None

del a.attr


# вторая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°:

class A:

 pass

a = A()

setattr(a, 'attr', 1)

if hasattr(a, 'attr'):

 print getattr(a, 'attr')

else:

 print None

delattr(a, 'attr')

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” Β«ΡƒΠΊΡ€Π°ΡˆΠ°Ρ‚Π΅Π»ΠΈΒ» ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² классов

Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² Π»Π΅ΠΊΡ†ΠΈΠΈ, посвящСнной ООП.

ΠžΠ±Π·ΠΎΡ€ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

ΠœΠΎΠ΄ΡƒΠ»ΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ условно Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

1. Π‘Срвисы ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° выполнСния. ΠœΠΎΠ΄ΡƒΠ»ΠΈ: sys, atexit, copy, traceback, math, cmath, random, time, calendar, datetime, sets, array, struct, itertools, locale, gettext.

2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ†ΠΈΠΊΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠœΠΎΠ΄ΡƒΠ»ΠΈ: pdb, hotshot, profile, unittest, pydoc. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ docutils, distutils.

3. Π’заимодСйствиС с ОБ (Ρ„Π°ΠΉΠ»Ρ‹, процСссы). ΠœΠΎΠ΄ΡƒΠ»ΠΈ: os, os.path, getopt, glob, popen2, shutil, select, signal, stat, tempfile.

3. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСкстов. ΠœΠΎΠ΄ΡƒΠ»ΠΈ: string, re, StringIO, codecs, difflib, mmap, sgmllib, htmllib, htmlentitydefs. ΠŸΠ°ΠΊΠ΅Ρ‚ xml.

3. ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ вычислСния. ΠœΠΎΠ΄ΡƒΠ»ΠΈ: threading, thread, Queue.

4. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. Архивация. ΠœΠΎΠ΄ΡƒΠ»ΠΈ: pickle, shelve, anydbm, gdbm, gzip, zlib, zipfile, bz2, csv, tarfile.

5. ΠŸΠ»Π°Ρ‚формо–зависимыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Для UNIX: commands, pwd, grp, fcntl, resource, termios, readline, rlcompleter. Для Windows: msvcrt, _winreg, winsound.

6. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСти. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ΠœΠΎΠ΄ΡƒΠ»ΠΈ: cgi, Cookie, urllib, urlparse, httplib, smtplib, poplib, telnetlib, socket, asyncore. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сСрвСров: SocketServer, BaseHTTPServer, xmlrpclib, asynchat.

7. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Internet. Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠΎΠ΄ΡƒΠ»ΠΈ: quopri, uu, base64, binhex, binascii, rfc822, mimetools, MimeWriter, multifile, mailbox. ΠŸΠ°ΠΊΠ΅Ρ‚ email.

8. Python ΠΎ сСбС. ΠœΠΎΠ΄ΡƒΠ»ΠΈ: parser, symbol, token, keyword, inspect, tokenize, pyclbr, py_compile, compileall, dis, compiler.

9. Π“рафичСский интСрфСйс. ΠœΠΎΠ΄ΡƒΠ»ΡŒ Tkinter.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

ΠžΡ‡Π΅Π½ΡŒ часто ΠΌΠΎΠ΄ΡƒΠ»ΠΈ содСрТат ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько классов, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… создаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ Π½Π΅ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… ΠΈΠ· модуля, Π° ΠΎΠ± Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ содСрТат лишь Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, слишком ΠΎΠ±Ρ‰ΠΈΠ΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ (Π»ΠΈΠ±ΠΎ достаточно большой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²). 

БСрвисы ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° выполнСния

ΠœΠΎΠ΄ΡƒΠ»ΡŒ sys

ΠœΠΎΠ΄ΡƒΠ»ΡŒ sys содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ срСдС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ± ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅ Python. Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄ΡƒΡ‚ прСдставлСны Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· этого модуля: ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

exit([c]) Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. МоТно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ числовой ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ: 0 Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ числа ΠΏΡ€ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. argv Бписок Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ sys.argv[0] содСрТит имя Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. platform ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. stdin, stdout, stderr Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄, Π²Ρ‹Π²ΠΎΠ΄, Π²Ρ‹Π²ΠΎΠ΄ ошибок. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. version ВСрсия ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. setrecursionlimit(limit) Установка уровня максимальной влоТСнности рСкурсивных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². exc_info() Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎΠ± ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ copy

Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для копирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’Π½Π°Ρ‡Π°Π»Π΅ прСдлагаСтся ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ «парадокс», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² Π·Π°ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² Python:

lst1 = [0, 0, 0]

lst = [lst1] * 3

print lst

lst[0][1] = 1

print lst

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ оТидалось:

[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

[[0, 1, 0], [0, 1, 0], [0, 1, 0]]

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ список lst содСрТит ссылки Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ список! Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ список, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ copy() ΠΈΠ· модуля copy:

from copy import copy

lst1 = [0, 0, 0]

lst = [copy(lst1) for i in range(3)]

print lst

lst[0][1] = 1