Π Π°Π·Π½ΠΎΠ΅

Python pep8 Π½Π° русском: ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠ΄Π° Π² языкС Python

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠŸΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π° ΠΏΠΎ PEP8 Π½Π° Python. Руководство для программиста — Python 3 | Data Science | НСйронныС сСти | AI

Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ списка ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π΅Π³ΠΎ элСмСнтам ΠΏΡ€ΠΈ распаковкС. НапримСр, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒΒ enumerate()Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΈΠ· Π΄Π²ΡƒΡ… элСмСнтов для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² спискС:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это для Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

Π’ Python 3 Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ распаковки Π±Ρ‹Π» прСдставлСн PEP3132Β :

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, в распаковкС ), Π½ΠΎ Π²Π°ΠΌ Π½Π΅ понадобится эта пСрСмСнная, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β __:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ списки ΡΠ²Π»ΡΡŽΡ‚ΡΡ измСняСмыми,Β *ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅) создаст список ΠΈΠ· N ссылок Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ тот ТС список, Ρ‡Ρ‚ΠΎ вряд Π»ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ списка:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ range () вмСсто xrange () Π² Python 3.

РаспространСнная ΠΈΠ΄ΠΈΠΎΠΌΠ° для создания строк β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΒ str.join()ΠΏΡƒΡΡ‚ΡƒΡŽ строку.

Π­Ρ‚ΠΎ установит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ wordΒ Π² Β«spamΒ».Β Π­Ρ‚Π° ΠΈΠ΄ΠΈΠΎΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ спискам ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌ.

Поиск ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π° Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈΒ 

Иногда Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²Π΅Ρ‰Π΅ΠΉ.Β Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°: списки ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹.

Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

s = set(['s', 'p', 'a', 'm'])
l = ['s', 'p', 'a', 'm']

def lookup_set(s):
    return 's' in s

def lookup_list(l):
    return 's' in l

Π₯отя ΠΎΠ±Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒΒ lookup_setΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€Ρ‹ Π² Python ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ поиска ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Π°.Β Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ элСмСнт Π² спискС, Python Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт.Β Π­Ρ‚ΠΎ ΠΎΡ‚Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, особСнно для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… списков.Β Π’ Π½Π°Π±ΠΎΡ€Π΅, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ρ…Π΅Ρˆ элСмСнта сообщит Python, Π³Π΄Π΅ Π² Π½Π°Π±ΠΎΡ€Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт.Β Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ поиск ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ быстро, Π΄Π°ΠΆΠ΅ Ссли Π½Π°Π±ΠΎΡ€ большой. Поиск Π² словарях Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. Эту страницу StackOverflowΒ . Для получСния ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих структур Π΄Π°Π½Π½Ρ‹Ρ…, см.Β Π­Ρ‚Ρƒ страницу .

Из-Π·Π° этих Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ часто рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ словари вмСсто списков Π² случаях, ΠΊΠΎΠ³Π΄Π°:

  • ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ большоС количСство ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²
  • Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ
  • Π£ вас Π½Π΅Ρ‚ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ².

Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π½Π΅ часто Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для настройки Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, часто Π±ΡƒΠ΄ΡƒΡ‚ большС, Ρ‡Π΅ΠΌ врСмя, сэкономлСнноС благодаря ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ скорости поиска.

Π”Π·Π΅Π½ ΠΏΠΈΡ‚ΠΎΠ½Π°Β 

Π’Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊΒ PEP 20Β , руководящиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ для Π΄ΠΈΠ·Π°ΠΉΠ½Π° Python.

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

НСкоторыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ стиля Python см. На этих слайдах ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ PythonΒ .

БоглашСния PEP8

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соглашСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Π»Π΅Π³Ρ‡Π΅ для чтСния.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ€Π°Π²Π½Π° Π»ΠΈ пСрСмСнная постоянной 

Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с True, None ΠΈΠ»ΠΈ 0 β€” Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if.Β Π‘ΠΌ.Β ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° истинности значСния для получСния списка Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ считаСтся Π»ΠΎΠΆΠ½Ρ‹ΠΌ.

ΠŸΠ»ΠΎΡ…ΠΎΒ :

if attr == True:
    print 'True!'

if attr == None:
    print 'attr is None!'

Π₯ΠΎΡ€ΠΎΡˆΠΎΒ :

# Just check the value
if attr:
    print 'attr is truthy!'

# or check for the opposite
if not attr:
    print 'attr is falsey!'

# or, since None is considered false, explicitly check for it
if attr is None:
    print 'attr is None!

Доступ ΠΊ элСмСнту словаря 

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β dict.has_key()ΠΌΠ΅Ρ‚ΠΎΠ΄. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для .xΒ inΒ ddict.get()

ΠŸΠ»ΠΎΡ…ΠΎΒ :

d = {'hello': 'world'}
if d.has_key('hello'):
    print d['hello']    # prints 'world'
else:
    print 'default_value'

Π₯ΠΎΡ€ΠΎΡˆΠΎΒ :

d = {'hello': 'world'}

print d.get('hello', 'default_value') # prints 'world'
print d.get('thingy', 'default_value') # prints 'default_value'

# Or:
if 'hello' in d:
    print d['hello']

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ способы манипулирования списками 

ΠŸΠΎΡΡ‚ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ²Β ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками.

ВыраТСния Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°Β ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ синтаксису, Ρ‡Ρ‚ΠΎ ΠΈ списки, Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ вмСсто списка.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ списка Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ большС памяти. Если Π²Ρ‹ просто ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡƒ списку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ вмСсто этого ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€.

ΠŸΠ»ΠΎΡ…ΠΎΒ :

# needlessly allocates a list of all (gpa, name) entires in memory
valedictorian = max([(student.gpa, student.name) for student in graduates])

Π₯ΠΎΡ€ΠΎΡˆΠΎΒ :

valedictorian = max((student.gpa, student.name) for student in graduates)

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ списки, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ список, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ нСсколько Ρ€Π°Π·.

Если ваша Π»ΠΎΠ³ΠΈΠΊΠ° слишком слоТна для понимания ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ списка ΠΈΠ»ΠΈ выраТСния Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°, рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° вмСсто Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° списка.

Π₯ΠΎΡ€ΠΎΡˆΠΎΒ :

def make_batches(items, batch_size):
    """
    >>> list(make_batches([1, 2, 3, 4, 5], batch_size=3))
    [[1, 2, 3], [4, 5]]
    """
    current_batch = []
    for item in items:
        current_batch.append(item)
        if len(current_batch) == batch_size:
            yield current_batch
            current_batch = []
    yield current_batch

Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ списочноС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π΅Π³ΠΎ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов.

ΠŸΠ»ΠΎΡ…ΠΎΒ :

[print(x) for x in sequence]

Π₯ΠΎΡ€ΠΎΡˆΠΎΒ :

for x in sequence:
    print(x)

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ списка 

ΠŸΠ»ΠΎΡ…ΠΎΒ :

Никогда Π½Π΅ удаляйтС элСмСнты ΠΈΠ· списка, ΠΏΠΎΠΊΠ° Π²Ρ‹ просматриваСтС Π΅Π³ΠΎ.

# Filter elements greater than 4
a = [3, 4, 5]
for i in a:
    if i > 4:
        a.remove(i)

НС Π΄Π΅Π»Π°ΠΉΡ‚Π΅ нСсколько ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎ списку.

while i in a:
    a.remove(i)

Π₯ΠΎΡ€ΠΎΡˆΠΎΒ :

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ списка ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

# comprehensions create a new list object
filtered_values = [value for value in sequence if value != x]

# generators don't create another list
filtered_values = (value for value in sequence if value != x)
Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты измСнСния исходного списка 

ИзмСнСниС исходного списка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рискованным, Ссли Π½Π° Π½Π΅Π³ΠΎ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ срСзов, Ссли Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

# replace the contents of the original list
sequence[::] = [value for value in sequence if value != x]

ИзмСнСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² спискС 

ΠŸΠ»ΠΎΡ…ΠΎΒ :

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Если Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ список, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ ΠΈΡ… всС.

# Add three to all list members.
a = [3, 4, 5]
b = a                     # a and b refer to the same list object

for i in range(len(a)):
    a[i] += 3             # b[i] also changes

Π₯ΠΎΡ€ΠΎΡˆΠΎΒ :

БСзопаснСС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ списка ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» Π² ΠΏΠΎΠΊΠΎΠ΅.

a = [3, 4, 5]
b = a

# assign the variable "a" to a new list without changing "b"
a = [i + 3 for i in a]

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β enumerate()счСтчик вашСго мСста Π² спискС.

a = [3, 4, 5]
for i, item in enumerate(a):
    print i, item
# prints
# 0 3
# 1 4
# 2 5

enumerate()Ѐункция ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΡƒΡŽ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ,Β Ρ‡Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° счСтчика Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.Β Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°Β 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ для чтСния ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ².Β Π­Ρ‚ΠΎ автоматичСски Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ для вас.withΒ open

ΠŸΠ»ΠΎΡ…ΠΎΒ :

f = open('file.txt')
a = f.read()
print a
f.close()

Π₯ΠΎΡ€ΠΎΡˆΠΎΒ :

with open('file.txt') as f:
    for line in f:
        print line

Π­Ρ‚ΠΎΒ withΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π»ΡƒΡ‡ΡˆΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ всСгда Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ», Π΄Π°ΠΆΠ΅ Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈΒ withΠ±Π»ΠΎΠΊΠ°Β Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅Β .

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ строки 

Когда логичСская строка ΠΊΠΎΠ΄Π° Π΄Π»ΠΈΠ½Π½Π΅Π΅ допустимого ΠΏΡ€Π΅Π΄Π΅Π»Π°, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΅Π΅ Π½Π° нСсколько физичСских строк.Β Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ строки, Ссли послСдний символ строки являСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ.Β Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΅Π³ΠΎ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ хрупкости: ΠΏΡ€ΠΎΠ±Π΅Π», Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² ΠΊΠΎΠ½Π΅Ρ† строки послС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹, Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ ΠΊΠΎΠ΄ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ.

Π›ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки Π²ΠΎΠΊΡ€ΡƒΠ³ Π²Π°ΡˆΠΈΡ… элСмСнтов.Β ΠžΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ с Π½Π΅Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΊΡ€ΡƒΠ³Π»ΠΎΠΉ скобкой Π² ​​концС строки, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python присоСдинится ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС, ΠΏΠΎΠΊΠ° ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹.Β Π’ΠΎ ΠΆΠ΅ самоС относится ΠΈ ΠΊ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌ ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌ скобкам.

ΠŸΠ»ΠΎΡ…ΠΎΒ :

my_very_big_string = """For a long time I used to go to bed early. Sometimes, \
    when I had put out my candle, my eyes would close so quickly that I had not even \
    time to say β€œI’m going to sleep.”"""

from some.deep.module.inside.a.module import a_nice_function, another_nice_function, \
    yet_another_nice_function

Π₯ΠΎΡ€ΠΎΡˆΠΎΒ :

my_very_big_string = (
    "For a long time I used to go to bed early. Sometimes, "
    "when I had put out my candle, my eyes would close so quickly "
    "that I had not even time to say β€œI’m going to sleep.”"
)

from some.deep.module.inside.a.module import (
    a_nice_function, another_nice_function, yet_another_nice_function)

Однако Ρ‡Π°Ρ‰Π΅ всСго Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ логичСской строки являСтся ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅Ρ‰Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

красивый ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ классы ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Python ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ стандарты ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ всС программисты. Π­Ρ‚ΠΈ стандарты описаны Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ PEP8.

Π›ΡŽΠ±ΠΎΠΉ популярный язык программирования Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ программисты писали ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ ΠΊΠΎΠ΄. ΠžΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Π½ΠΎΡ€ΠΌΡ‹ Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ошибки ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ считаСтся ΠΏΠ»ΠΎΡ…ΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ срСди ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄?

На самом Π΄Π΅Π»Π΅ программисты проводят Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ ΠΊΠΎΠ΄Π°, Π° Π½Π΅ Π·Π° Π΅Π³ΠΎ написаниСм. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ с нуля. БСрутся ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… насчитываСт сотни тысяч строк.

Если ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ с Ρ€Π°Π·Π½Ρ‹ΠΌ стилСм, Ρ‚ΠΎ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ· станСт ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Python-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ слСдовали ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ соглашСниям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ понятным Π»ΡŽΠ±ΠΎΠΌΡƒ спСциалисту.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ созданию красивого ΠΊΠΎΠ΄Π° Π½Π° Python Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ программист ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ Π½Π° своё усмотрСниС, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ всё Π΅Ρ‰Ρ‘ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌ указаниям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² стандартС.

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΡΡ особый ΡΡ‚ΠΈΠ»ΡŒ написания ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСстах Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ принятыС соглашСния. Π­Ρ‚ΠΎ нСрСдкая ΠΈ допустимая ситуация, ΠΎΠ΄Π½Π°ΠΊΠΎ программист Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли ΠΎΠ½ ΡƒΠΉΠ΄Π΅Ρ‚ ΠΈΠ· этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π΅ΠΌΡƒ придСтся Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠ΅Ρ€Π΅ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² соотвСтствии с принятыми стандартами.

Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π° Python

Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» содСрТит указания, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Python 3 (ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, отступы, строки).

ΠžΡ‚ΡΡ‚ΡƒΠΏΡ‹

Для обозначСния Π½ΠΎΠ²ΠΎΠ³ΠΎ уровня влоТСнности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π°.

ΠŸΡ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° нСсколько строк Ρ€Π°Π·ΠΌΠ΅Ρ€ отступа ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌ.

Если это объявлСниС ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π΅Ρ‚ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки ΠΏΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉΡΡ скобкС:

f1 = func(first_arg, second_arg,
          third_arg, fourth_arg)

Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π°, Π½ΠΎ с ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ пСрСносом ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки:

f1 = func(
    first_arg, second_arg,
    third_arg, fourth_arg)

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для продолТСния ΠΈΠΌΠ΅Π½Π½ΠΎ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° – это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для строк продолТСния пСрСчислСния. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2.

Если послС списка Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² слСдуСт Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли это ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ функция), Ρ‚ΠΎ ΠΊ отступу Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² добавляСтся Π΅Ρ‰Π΅ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°:

def func(
        first_arg, second_arg, 
        third_arg, fourth_arg):
    print(fourth_arg)

Π­Ρ‚ΠΎ дСлаСтся для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΡ‚ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ случаС с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ if, программист ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ экстра отступы:

if(temp > 5 and
        temp < 25):
    some_func(some_args[])
if(temp > 5
    and temp < 25):
    some_func(some_args[])

Если Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Ρ‚ΠΎ, ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° однострочным ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… ΠΊΠΎΠ΄Π° ΠΈΠ·-Π·Π° подсвСтки коммСнтария.

Π—Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ конструкция Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ структурС ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ символом Π½ΠΈΠΆΠ½Π΅ΠΉ строки:

names = [
    "John", "Alex",
    "Olivia", "Jacob",
    ]

Π’Π°ΠΊΠΆΠ΅ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² самоС Π½Π°Ρ‡Π°Π»ΠΎ строки:

f = some_f(
    "str1", "str2",
    "str3", "str4",
)

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, использованиС ΠΈ табуляции, ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π½Π΅ просто Π½Π΅ привСтствуСтся, Π½ΠΎ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ошибки ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.

Максимальная Π΄Π»ΠΈΠ½Π° строки

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 79 символов Π² ΠΎΠ΄Π½ΠΎΠΉ строкС. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ многострочного тСкста (ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, докумСнтация) ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ 72-я символами.

Благодаря этим ограничСниям программисты ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ сразу нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ экранС, ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… экранах (ΡƒΠ»ΡŒΡ‚Ρ€Π°Π±ΡƒΠΊΠΈ, Π½Π΅Ρ‚Π±ΡƒΠΊΠΈ) ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄.

ΠšΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ способ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° нСсколько строк. Однако программисты Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°ΠΊ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ β€œ\β€œ.

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹

Π’ΠΎΠΊΡ€ΡƒΠ³ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΈΠ½Π°Ρ‡Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π½ΠΈΠ·ΠΊΠΎΠΉ.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

math_rez = a * b – x + y

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

math_rez=a*b–x+y

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² многострочном Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Ρ‚ΠΎ ΠΎΠ½ΠΈ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒΡΡ вмСстС с ΠΏΡ€Π°Π²Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ:

max_sum = (first_sum
           + second_sum
           + third_sum)

ΠŸΡƒΡΡ‚Ρ‹Π΅ строки

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π½Π΅ΡˆΠ½ΠΈΡ… классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ окруТаСтся двумя пустыми строками (Π΄Π²Π΅ строки свСрху).

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ пустой строкой.

Π“Ρ€ΡƒΠΏΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ пустой строкой. Π“Ρ€ΡƒΠΏΠΏΡ‹ связанных строк ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒ пустыми строками для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

НСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пустыС строки ΠΌΠ΅ΠΆΠ΄Ρƒ внСшним ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π°.

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°

Π€Π°ΠΉΠ»Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Python 3 всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ UTF-8. РаньшС Π² Python 2 использовалась ASCII.

Если Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, слСдуСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ: \x, \u, \U, \N.

Π˜ΠΌΠΏΠΎΡ€Ρ‚

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ модуля Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π½ΠΎΠ²ΠΎΠΉ строкС:

import sys
import time

ΠŸΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… частСй модуля ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎΠΉ строкС Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ:

from time import sleep, ctime

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ всСгда находятся Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°, Π½ΠΈΠΆΠ΅ строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ Π²Ρ‹ΡˆΠ΅ объявлСния констант.

Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ, ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ставится пустая строка:

  1. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
  2. Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
  3. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€œ*” ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ считаСтся ΠΏΠ»ΠΎΡ…ΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π½Π΅ Π΄Π°Π΅Ρ‚ прСдставлСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ, Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам.

ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² строках

Π’ Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Однако, Ссли Π² строкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ρ‚ΠΎ программист Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ строку ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ строки.

Для строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Ρ€ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ это описано Π² стандартС PEP 257.

ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² выраТСниях ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ…

ΠŸΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ситуациях слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΈΡ… использования.

  • Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ…, ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок.
    • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      mix_arr = ("John", [176, 70], {"age" : 14})
    • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      mix_arr = ( "John", [ 176, 70 ], { "age" : 14 } )
  • ΠœΠ΅ΠΆΠ΄Ρƒ запятой ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкой.
  • ΠŸΠ΅Ρ€Π΅Π΄ запятой, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ. Однако Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ срСза Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² с ΠΎΠ±Π΅ΠΈΡ… сторон.
    • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: mix_arr[0:2] ΠΈΠ»ΠΈ mix_arr[0 : 2]
    • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: mix_arr[0 :2] ΠΈΠ»ΠΈ mix_arr[0: 2]
  • ΠœΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ скобкой с ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π² Π½Π΅Ρ‘ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.
    • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      custom_function(args)
    • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      custom_function (args)
  • НСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания Ρ€Π°Π·Π½Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
    • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      weight = 70
      height = 1,76
      body_mass_index = 22,5
    • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      weight          = 70
      heightΒ Β Β Β Β Β Β Β Β Β = 1,76
      body_mass_index = 22,5
  • ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания ΠΈ сравнСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.
  • Если Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ это, допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠΊΡ€ΡƒΠ³ этих ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
      y = 2*x – 1/x
  • Если Π·Π½Π°ΠΊ присваивания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для задания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ отдСляСтся ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
      def graph(x=0.0, y=0.0)
  • НС ΠΏΠΈΡˆΠΈΡ‚Π΅ нСсколько инструкций Π² ΠΎΠ΄Π½ΠΎΠΉ строкС (Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой).
  • Если Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ строки, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ρ‡Ρ‚ΠΎ ΠΈ Ρ†ΠΈΠΊΠ».

ИспользованиС запятых

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ запятыС, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся использованиС запятых Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅, состоящим ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта. Π’ этом случаС слСдуСт ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки.

  • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
    names = ("John",)
  • ДопускаСтся, Π½ΠΎ Π½Π΅ рСкомСндуСтся:
    names = "John",

ИспользованиС запятых особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с систСмой контроля вСрсий, ΠΊΠΎΠ³Π΄Π° список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ постоянно Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΡΡ. Π’ этом случаС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ с Π½ΠΎΠ²ΠΎΠΉ строки.

  • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
    names = [
        "John",
        "Olivia",
        ]
  • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
    names = ["John", "Olivia",]

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ β€” это ваТная Ρ‡Π°ΡΡ‚ΡŒ любого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ особСнности ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ спСциалисты ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ΄, Π½ΠΎ ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ самим Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΡΡƒΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π° Π½Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ΡŒ Π΅ΠΌΡƒ. Если ΠΊΠΎΠ΄ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ измСняСтся, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

ВсС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ прСдлоТСниями, ΠΈ Ссли ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово Π½Π΅ являСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹.

ВсС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ написаны Π½Π° английском языкС, Π΄Π°ΠΆΠ΅ Ссли программисты Π½Π΅ ΠΈΠ· англоговорящСй страны ΠΈ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ англоговорящиС программисты.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ Π½Π° английском, Ссли Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π½Π° 120%, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ люди Π½Π΅ говорящиС Π½Π° вашСм языкС.

Π‘Π»ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π‘Π»ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ дСйствий ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π°Π΄ Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π° Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС.

# Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ интСрСсноС
a = 5
b = 10
a = b - a + a

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ β€œΠ² строкС”

Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ дСйствия строки ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠΎΠ΄. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ двумя ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.

Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ ΠΈ Π½Π΅ нСсут Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ практичСской ΠΏΠΎΠ»ΡŒΠ·Ρ‹.

a = a / 2 # Π”Π΅Π»Π΅Π½ΠΈΠ΅ числа Π½Π° Π΄Π²Π°

Однако Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° настоящСС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ строки Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ:

a = a / 2 # ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сСрСдины экрана

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

ВсС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, классы ΠΈ ΠΈΡ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ относится ΠΊ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ строкой с β€œdef” ΠΈ Ρ‚Π΅Π»ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ соглашСниС ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ рассказано Π² PEP 257. ΠšΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ окончания строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ пСрСносится Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку.

"""Speed determination.

Keyword arguments:
distance -- distance traveled in meters
time -- time in seconds (default 1)
"""

Однако, Ссли докумСнтация состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ строки, Ρ‚ΠΎ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π΅ пСрСносятся.

"""Some info about something."""

ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΈΠΌΡ‘Π½

БоглашСния ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΈΠΌΡ‘Π½ Π² Python Π½Π΅Ρ‚ΠΎΡ‡Π½Ρ‹, поэтому Π½Π΅ сущСствуСт списка, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΡΡ‚ΠΈΠ»ΡŒ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ Π² Python. Для всСх Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ стандарт Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ.

Если ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ собствСнный ΡΡ‚ΠΈΠ»ΡŒ ΠΈΠΌΡ‘Π½, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠΉ принятый стандарт, Ρ‚ΠΎ программист Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Ρ‚ΠΎΠΌ стилС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°.

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ

Если имя являСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ интСрфСйса ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π° использованиС.

Π‘Ρ‚ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½

Π’Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π² Python ΠΌΠΎΠΆΠ½ΠΎ Π² соотвСтствии с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… стилСй. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡ‚ΠΈΠ»ΡŒ наимСнования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ стили:

  • b (одиночная строчная Π±ΡƒΠΊΠ²Π°)
  • B (одиночная заглавная Π±ΡƒΠΊΠ²Π°)
  • lowercase (Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр)
  • lower_case_with_underscores (Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр с Π½ΠΈΠΆΠ½Π΅ΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ)
  • UPPERCASE (Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр)
  • UPPER_CASE_WITH_UNDERSCORES (Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр с Π½ΠΈΠΆΠ½Π΅ΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ)
  • CapitalizedWords (CamelCase) – ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ΅ слово начинаСтся с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹
  • mixedCase (отличаСтся ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ пСрвая Π±ΡƒΠΊΠ²Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС)

ИмСна, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строчныС английскиС Π±ΡƒΠΊΠ²Ρ‹: l (β€œΡΠ»β€), O (заглавная β€œΠΎβ€) ΠΈ I (заглавная β€œΠ°ΠΉβ€). Заглавная β€œΠΎβ€ Π½Π΅ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌΠ° ΠΎΡ‚ нуля, Π° β€œl” ΠΈ β€œI” Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.

Если всё ΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ l (β€œΡΠ»β€), Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Ρ‘ Π½Π° Π·Π°Π³Π»Π°Π²Π½ΡƒΡŽ β€œL”.

ИмСна ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ

ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС. Π’ ΠΈΠΌΠ΅Π½Π°Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΈΠΆΠ½ΠΈΠ΅ подчСркивания, Ссли это ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ.

Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π° C ΠΈΠ»ΠΈ C++ сопровоТдаСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Python, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ высокоуровнСвый интСрфСйс, Ρ‚ΠΎ имя C/C++ модуля начинаСтся с символа Π½ΠΈΠΆΠ½Π΅Π³ΠΎ подчСркивания (_modulename).

ИмСна классов

Классам Π΄Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π° Π² соотвСтствии со стилСм наимСнования CapitalizedWords.

ИмСна ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎ сути ΡΠ²Π»ΡΡŽΡ‚ΡΡ классами, ΠΊ Π½ΠΈΠΌ примСняСтся Ρ‚ΠΎ ΠΆΠ΅ соглашСниС ΠΎΠ± наимСнованиях, Ρ‡Ρ‚ΠΎ ΠΈ для классов.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ суффикс β€œError”, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ являСтся ошибкой.

ИмСна Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ Ρ‚Π΅ΠΌ ΠΆΠ΅ соглашСниям, Ρ‡Ρ‚ΠΎ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля.

Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прСдполагаСтся ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ from module import *, слСдуСт ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ всС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² __all__. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Ρ‚Π΅Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² соотвСтствии со своСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ доступны ΠΈΠ·Π²Π½Π΅.

__all__ – это список доступных для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ….

ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Для ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ слова символом Π½ΠΈΠΆΠ½Π΅Π³ΠΎ подчСркивания.

ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π’ случаях, Ссли трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, threading.py), допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ mixedCase.

ИмСна Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

Для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² экзСмпляра Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ self, Π° для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса β€” cls.

Если Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом языка, слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π΅Π³ΠΎ ΠΊΠΎΠ½Π΅Ρ† символ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ подчСркивания. Π­Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ имя с ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ смысла.

  • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
    tuple_
  • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
    tpl
    tupl

ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² экзСмпляров класса

Π’ΠΎΡ‚ ΠΆΠ΅ ΡΡ‚ΠΈΠ»ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр ΠΈ Π½ΠΈΠΆΠ½ΠΈΠ΅ подчСркивания ΠΏΡ€ΠΈ нСобходимости.

Для Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² экзСмпляра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½ΠΈΠΆΠ½Π΅Π΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠΌΠ΅Π½ΠΈ (_method).

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠΌΡ‘Π½ с подклассами, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° символа Π½ΠΈΠΆΠ½Π΅Π³ΠΎ подчСркивания Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠΌΡ‘Π½. Если класс Animal ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ __a, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° Animal.__a Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ (Π² этом случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Animal._Animal__a), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ имя. Π”Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠΌΡ‘Π½ Π² классах ΠΈ подклассах.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ слова символами подчСркивания.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

  • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ совмСстимым с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ рСализациями Python, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ PyPy, IronPython ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.
  • Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ языка, ΠΊΠ°ΠΊ None, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ is ΠΈΠ»ΠΈ is not, Π° Π½Π΅ Π·Π½Π°ΠΊ Ρ€Π°Π²Π½ΠΎ.
    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ if x is not None (Ссли x Π½Π΅ являСтся None). Π’Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкС, Ссли x – ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.
  • ВыраТСния β€œis not” ΠΈ β€œnot … is” Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ. Однако для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ читаСмости ΠΊΠΎΠ΄Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.
  • НС присваивайтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ прСимущСство лямбда-выраТСния Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ встроСно Π² Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ВмСсто этого ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ def.
  • Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Если просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ except, Ρ‚ΠΎ компилятор Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ.
    • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      try:
          import some_module
      except ImportError:
          print("Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½")
    • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      try:
          import some_module
      except:
          print("Π― Π½Π΅ Π·Π°Π΄Π°Π» Ρ‚ΠΈΠΏ ошибки, "
                "Π²Ρ‹ Π½Π΅ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ctrl+c")
  • Π’Π½ΡƒΡ‚Ρ€ΠΈ конструкции для отлавливания ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΊΠΎΠ΄Π°. Если это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ соблюдСно, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ стало ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибки.
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π²ΡƒΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ isinstance(), Π° Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ is.
    • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: isinstance(object, int)
    • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: type(object) is type(99)
  • НСльзя ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с логичСским Ρ‚ΠΈΠΏΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ равСнства ΠΈΠ»ΠΈ is.
    • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      if isAlive:
    • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      if isAlive == True:
    • ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      if isAlive is True:

pep8. ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΎ Π³Π»Π°Π²Π½ΠΎΠΌ ➀ DefPython

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, PEP8 это Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ общСпринятый ΡΡ‚ΠΈΠ»ΡŒ написания ΠΊΠΎΠ΄Π° Π½Π° языкС Python. Π”Π°Π»Π΅Π΅ прСдставлСн ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ PEP8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ состоит ΠΈΠ· 25 ΠΏΡ€Π°Π²ΠΈΠ».

  • На ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отступа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°.Β  Вабуляция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ лишь для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ старого ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

  • Π”Π»ΠΈΠ½Ρƒ строки рСкомСндуСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ 79 символами. ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ способ пСрСноса Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк β€” использованиС
    ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ продолТСния строки ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΈ
    Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками. Π’Π°ΠΊ ΠΆΠ΅ для пСрСноса Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш («\»).

  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΠΈ опрСдСлСния классов ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‚ΡΡ двумя пустыми строками. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ класса Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ пустой строкой. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ пустыС строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для логичСского раздСлСния.

  • ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π² Python 2 Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒΒ ASCII. А Π²Β  Python 3Β  — UTF-8.

  • Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° — ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ строка. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ располоТСния — стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ прилоТСния. Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹ всСгда ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°, сразу послС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΈ строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ объявлСниСм констант. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡƒΡΡ‚ΡƒΡŽ строку для отдСлСния Π³Ρ€ΡƒΠΏΠΏ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ².

  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ…, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок; ΠΏΠ΅Ρ€Π΅Π΄ запятой, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой ΠΈΠ»ΠΈ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ. Π‘Ρ€Π°Π·Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкой, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ начинаСтся список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π²ΠΎΠΊΡ€ΡƒΠ³ любого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π» с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ стороны Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
    присваивания(=, +=, -=), ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния (==, <, >, !=,
    <>, <=, >=, in, not in, is, is not) ΠΈ логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (and, or,
    not). НС
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ Π·Π½Π°ΠΊΠ° =, Ссли ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для
    обозначСния ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

  • ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‚ ΠΊΠΎΠ΄Ρƒ, Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΈΡ… отсутствиС. ВсСгда исправляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°. По возмоТности ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π° английском языкС. КаТдая
    строчка Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с символа # ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°
    послС нСго.

  • ΠŸΠΈΡˆΠΈΡ‚Π΅
    Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для всСх public ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

  • Никогда
    Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ символы l (малСнькая латинская Π±ΡƒΠΊΠ²Π° Β«LΒ»), O
    (заглавная латинская Π±ΡƒΠΊΠ²Π° Β«oΒ») ΠΈΠ»ΠΈ I (заглавная латинская Π±ΡƒΠΊΠ²Π° Β«iΒ») Π² качСствС ΠΈΠΌΠ΅Π½.

  • ΠœΠΎΠ΄ΡƒΠ»ΠΈ
    Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°, состоящиС ΠΈΠ· ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π±ΡƒΠΊΠ².

  • ИмСна классов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ соглашСнию CapitalizedWords
    (слова с Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ).

  • ИмСна
    Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π±ΡƒΠΊΠ², Π° слова Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒΡΡ
    символами подчСркивания(lower_case_with_underscores).

  • Для ΠΈΠΌΠ΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… экзСмпляров классов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅
    Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΡΡ‚ΠΈΠ»ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ для ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

  • ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ self Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ cls Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса.

  • ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ
    Ρ€Π΅ΡˆΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса ΠΈΠ»ΠΈ экзСмпляра класса β€” public ΠΈΠ»ΠΈ Π½Π΅-public. Если Π²Ρ‹ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅Ρ‚Π΅ΡΡŒ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅
    Π½Π΅-public.

  • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ написан Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ языка.

  • БравнСния
    с None Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² is
    ΠΈΠ»ΠΈ is not, Π° Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния.

  • НаслСдуйтС
    свой класс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ Exception. ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ошибки вмСсто простого выраТСния except.

  • ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ def, Π° Π½Π΅ присваиваниС лямбда-выраТСния ΠΊ ΠΈΠΌΠ΅Π½ΠΈ

  • ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ
    Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ try…except ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³Ρ‡Π΅
    ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ошибки.

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строковыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
    вмСсто модуля string. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ».startswith() ΠΈ ».endswith() вмСсто Π²Ρ‹Ρ€Π΅Π·ΠΊΠΈ ΠΈΠ· строк для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ прСфиксов ΠΈ суффиксов.

  • Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ isinstance().

  • Для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ (строк, списков, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ пустая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ false.

  • НС сравнивайтС логичСскиС Ρ‚ΠΈΠΏΡ‹ с True ΠΈ False с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ == .

  • PEP 8: Руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ кодирования Π² Python

    Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ являСтся основой любого языка программирования, Π½ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ΄Π΅Ρ€ ΠΏΡ€ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ это ΡΡ‚ΠΈΠ»ΡŒ кодирования. ИмСя это Π² Π²ΠΈΠ΄Ρƒ, Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ строгий порядок ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сцСнариСв. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ являСтся большой подсказкой для понимания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ всСгда являСтся ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½ΠΈΠ΅ чтСния ΠΊΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ людьми, ΠΈ принятиС Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ стиля кодирования ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² этом.

    Для Python PEP 8 стал руководством ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ придСрТиваСтся Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²; это ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΈ приятный для Π³Π»Π°Π· ΡΡ‚ΠΈΠ»ΡŒ кодирования. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Python Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚; Π’ΠΎΡ‚ самыС Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Π΅ для вас:

    1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π±Π΅Π· Π²ΠΊΠ»Π°Π΄ΠΎΠΊ.
    ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

    # Aligned with opening delimiter.
    grow = function_name(variable_one, variable_two,
                         variable_three, variable_four)
    
    # First line contains no argument. Second line onwards
    # more indentation included to distinguish this from 
    # the rest.
    def function_name(
            variable_one, variable_two, variable_three,
            variable_four):
        print(variable_one)
    

    ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ 4 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π½Π΅ всСгда являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎ для строки продолТСния.

    2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²: Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ однострочныС, Ρ‚Π°ΠΊ ΠΈ многострочныС строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Однако однострочный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ помСщаСтся Π² ΠΎΠ΄Π½Ρƒ строку, Π² ΠΎΠ±ΠΎΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для опрСдСлСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ опрСдСлСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

    def exam():
        """This is single line docstring"""
    
        """This is
        a
        multiline comment"""
    

    3. ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚Π΅ строки Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»ΠΈ 79 символов: стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python являСтся консСрвативной ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ограничСния строк Π΄ΠΎ 79 символов. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, скобки ΠΈ скобки. Π˜Ρ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΊ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слСшам.
    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

    with open('/path/from/where/you/want/to/read/file') as file_one, \
         open('/path/where/you/want/the/file/to/be/written', 'w') as file_two:
        file_two.write(file_one.read())
    

    4. ИспользованиС рСгулярных ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² являСтся Ρ†Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ°ΠΊ для программистов, Ρ‚Π°ΠΊ ΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ . Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ условия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ соблюдСнии ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΌΠΎΡ‰ΡŒ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ прСдлоТСния. Если ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ являСтся ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π½Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ начинаСтся со строчной Π±ΡƒΠΊΠ²Ρ‹. Π’ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… коммСнтариях ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½. Π’ Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… коммСнтариях Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Π±Π·Π°Ρ†Π°, ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Π‘Π»ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ встроСнныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΌ Β«#Β».
    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ встроСнных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²:

    geek = geek + 1                 # Increment
    

    5. ИспользованиС запятых: это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ создания ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°.
    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

    tup = ("geek",)
    

    5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ стандартныС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Python UTF-8 ΠΈΠ»ΠΈ ASCII, Π° Π½Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π»ΠΈΠ²Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ , Ссли ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ срСды.

    6. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ послС запятых, Π½ΠΎ Π½Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ скобочных конструкций:

    a = f(1, 2) + g(3, 4)

    7. БоглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…: сущСствуСт нСсколько соглашСний ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠ΅Π½Π΅Π΅ слоТной ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΉ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… Π² Python Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Ρ‹, Π½ΠΎ Π²ΠΎΡ‚ нСсколько соглашСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ.
    БущСствуСт Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ части API, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ соглашСниям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ использованиС, Π° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.
    Π’ΠΎΡ‚ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… соглашСний ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…:

    b (single lowercase letter)
    
    B (single upper case letter)
    
    lowercase
    
    lower_case_with_underscores
    
    UPPERCASE
    
    UPPER_CASE_WITH_UNDERSCORES
    
    CapitalizedWords (or CamelCase). This is also sometimes known as StudlyCaps.
    Note: While using abbreviations in CapWords, capitalize all the letters 
    of the abbreviation. Thus HTTPServerError is better than HttpServerError.
    
    mixedCase (differs from CapitalizedWords by initial lowercase character!)
    
    Capitalized_Words_With_Underscores

    Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этим нСсколько Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ.
    ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:
    single_leading_underscore: слабый ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Β«Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ использования». НапримСр, ΠΈΠ· M import * Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, имя ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… начинаСтся с подчСркивания.

    single_trailing_underscore_: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Python.
    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

    Tkinter.Toplevel(master, class_='ClassName')

    __double_leading_underscore: ΠΏΡ€ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° класса Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ искаТСниС ΠΈΠΌΠ΅Π½ΠΈ.
    (Π²Π½ΡƒΡ‚Ρ€ΠΈ класса FooBar __boo становится _FooBar__boo;).

    __double_leading_and_trailing_underscore__: «магичСскиС» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΆΠΈΠ²ΡƒΡ‚ Π² управляСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ пространствах ΠΈΠΌΠ΅Π½. НапримСр, __init__, __import__ ΠΈΠ»ΠΈ __file__ . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ.

    8. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²: Β«lΒ» (строчная Π±ΡƒΠΊΠ²Π° el), Β«OΒ» (заглавная Π±ΡƒΠΊΠ²Π° oh) ΠΈΠ»ΠΈ Β«IΒ» (заглавная Π±ΡƒΠΊΠ²Π° eye) Π² качСствС ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΈ ноль.

    9. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ символы, Π½Π΅ входящиС Π² ASCII, Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ…, Ссли Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ люди, говорящиС Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС, Π±ΡƒΠ΄ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² малСйшСй стСпСни.

    10. НазывайтС свои классы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ
    . БоглашСниС состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CamelCase для классов ΠΈ lower_case_with_underscores для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ self Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

    11. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ self для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² экзСмпляра ΠΈ cls для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса. Если имя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ совпадаСт с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ словами, Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записано с запятой. НапримСр, class_

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ этой простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ понятный ΠΊΠΎΠ΄:

    Β Β 

    num = 7

    Β Β 

    Β Β 

    factorial = 1

    Β Β 

    if num < 0:

    Β Β Β print("Sorry, factorial does not exist for negative numbers")

    elif num == 0:

    Β Β Β print("The factorial of 0 is 1")

    else:

    Β Β Β for i in range(1,num + 1):

    Β Β Β Β Β Β Β factorial = factorial*i

    Β Β Β print("The factorial of",num,"is",factorial)

    Π’Ρ‹Ρ…ΠΎΠ΄:

    The factorial of 7 is 5040
    

    Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ прСдоставлСна Π§ΠΈΠ½ΠΌΠΎΠΉ Π›Π΅Π½ΠΊΠΎΠΉ . Если Π²Ρ‹ ΠΊΠ°ΠΊ GeeksforGeeks ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ внСсти свой Π²ΠΊΠ»Π°Π΄, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ contribute.geeksforgeeks.org ΠΈΠ»ΠΈ ΠΏΠΎ ΠΏΠΎΡ‡Ρ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ [email protected]. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ свою ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰ΡƒΡŽΡΡ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС GeeksforGeeks, ΠΈ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π²ΡƒΠ½Π΄Π΅Ρ€ΠΊΠΈΠ½Π΄Π°ΠΌ.

    ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ссли Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅, ΠΈΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ обсуТдаСмой Π²Ρ‹ΡˆΠ΅ Ρ‚Π΅ΠΌΠ΅.

    Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ посты:

    PEP 8: Руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ кодирования Π² Python

    0.00 (0%) 0 votes

    Python: русский PEP8 (сокращСнная вСрсия)

    ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ стандартов оформлСния ΠΊΠΎΠ΄Π° Π½Π° Python, извСстноС, ΠΊΠ°ΠΊ PEP8. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ слуТит для удобства чтСния вашСго ΠΊΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π°Β Python рСкомСндуСтся Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ²Π΅ΡΠΈΡ‚ΡŒ Π½Π° стСну.

    • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° для отступа ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π°Π±Ρ‹, Π½Π΅ ΡΠΌΠ΅ΡˆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΈΡ…
    • максимальная Π΄Π»ΠΈΠ½Π° строки 79 символов; для Ρ€Π°Π·Ρ€Ρ‹Π²Π° строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ отступы ΠΈΠ»ΠΈ бэкслСш
    • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΠΈ опрСдСлСния классов отдСляйтС двумя пустыми строками
    • опрСдСлСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ класса отдСляйтС ΠΎΠ΄Π½ΠΎΠΉ пустой строкой
    • Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ пустыС строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для логичСской Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²
    • ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Latin-1, Π° Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ 3 ΠΈ Π²Ρ‹ΡˆΠ΅ β€” utf-8
    • ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с Π½ΠΎΠ²ΠΎΠΉ строки
    • порядок ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ²: стандартныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, third-party ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ прилоТСния
    • пустая строка ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ²
    • ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок; ΠΏΠ΅Ρ€Π΅Π΄ запятыми, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой ΠΈ двоСточиями
    • ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ скобками с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ скобками с индСксами
    • ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ большС Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ (= β€” + ΠΈΡ‚Π΄)
    • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π» для выдСлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
    • ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π²ΠΎΠΊΡ€ΡƒΠ³ β€˜=’, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ keyword Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
    • обновляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ вмСстС с ΠΊΠΎΠ΄ΠΎΠΌ
    • ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ-английски
    • ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΈΠΌΡ‘Π½ ΠΈΠ· ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ… l, O, I
    • для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ короткиС всСстрочныС имСна
    • для классов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β Π‘Π»ΠΎΠ²Π°ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡΠ—Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈΒ ΠΈΠΌΠ΅Π½Π°
    • для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β ΡΠ»ΠΎΠ²Π°_с_подчёркиваниями (ΠΈΠ»ΠΈΒ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉΠ Π΅Π³ΠΈΡΡ‚Ρ€Β Π΅ΡΠ»ΠΈ Ρ‚Π°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ историчСски)
    • для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β ΡΠ»ΠΎΠ²Π°_с_подчёркиваниями имСна
    • для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…Β _ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅_ΠΏΠ΅Ρ€Π΅Π΄_словом
    • для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π°Β NoneΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β isΒ ΠΈΠ»ΠΈΒ is not, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния
    • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ основанныС Π½Π° классах β€” наслСдованныС ΠΎΡ‚ Exception
    • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса string вмСсто строковых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
    • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Β».startswith() ΠΈ Β».endswith() вмСсто Π²Ρ‹Ρ€Π΅Π·ΠΊΠΈ ΠΈΠ· строк для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ прСфиксов ΠΈ суффиксов
    • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ isinstance() для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠ°
    • Π½Π΅ сравнивайтС Π±ΡƒΠ»Π΅Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с True ΠΈ False

    ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ «Python: русский PEP8 (сокращСнная вСрсия)»

    Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎΠ΅ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅:

    Π‘Ρ‚ΠΈΠ»ΡŒ программирования Python ΠΈ основныС ΠΏΡ€Π°Π²ΠΈΠ»Π° PEP8

    PEP 8 β€” Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ соглашСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° языкС Python. PEP 8 создан Π½Π° основС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ создатСля языка Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Россума.Β  ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ идСя Π“Π²ΠΈΠ΄ΠΎ Ρ‚Π°ΠΊΠΎΠ²Π°: ΠΊΠΎΠ΄ читаСтся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС Ρ€Π°Π·, Ρ‡Π΅ΠΌ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ. БобствСнно, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΎ стилС написания ΠΊΠΎΠ΄Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ согласованным ΠΌΠ΅ΠΆΠ΄Ρƒ большим числом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π’ ΠΈΠ΄Π΅Π°Π»Π΅, Ссли вСсь ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ написан Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ стилС, Ρ‚ΠΎ любой смоТСт Π»Π΅Π³ΠΊΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ.

    Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

    • Β Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π° для отступов. НС Π΄Π΅Π»Π°ΠΉΡ‚Π΅ отступов Π² Π΄Π²Π° ΠΏΡ€ΠΎΠ±Π΅Π»Π°.

    • Β ΠŸΠΈΡˆΠΈΡ‚Π΅ importΒ  ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ модуля Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС

    • РасполагайтС всС importβ€˜Ρ‹ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ объявлСниями.

    • ΠžΡ‚Π΄Π΅Π»ΡΠΉΡ‚Π΅ Π±Π»ΠΎΠΊ importβ€˜ΠΎΠ² ΠΎΡ‚ ΠΊΠΎΠ΄Π° пустой строкой.

    • НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ from … import *

    • Π‘ΠΊΠΎΠ±ΠΊΠΈ Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ стороны. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ Π΅Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π΅Π» Π½Π΅ ставится.

    spam(ham[1], {eggs: 2}) Β  Β  Β  Β # ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ
    spam( ham[ 1 ], { eggs: 2 } ) Β # НСвСрно 

    • ΠŸΠ΅Ρ€Π΅Π΄ запятой, Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π΅Π» Π½Π΅ ставится, послС -β€” ставится.

    if x == 4:Β 

    Β  Β  print(x, y)

    Β  Β  x, y = y, x Β  Β  Β  # ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

    if x == 4 :Β 

    Β  Β  print(x , y)Β 

    Β  Β  x , y = y , x Β  Β  # НСвСрно

    •  ВсСгда ΠΎΠΊΡ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ символом ΠΏΡ€ΠΎΠ±Π΅Π»Π° с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ стороны:

      • присваивания (=, +=, -= ΠΈ Ρ‚. Π΄.),

      • сравнСния (==, <, >, !=, <>, <=, >=, in, not in, is, is not),

      • логичСскиС (and, or, not),

      • арифмСтичСскиС (+, -, *, /, //, \%, **).

    • НС располагайтС нСсколько инструкций Π² ΠΎΠ΄Π½ΠΎΠΉ строкС. РазнСситС ΠΈΡ… ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ строкам.

    x = 3 Β  Β  Β  Β  Β  Β # ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ
    func(10)
    x = 3; func(10) Β # НСвСрно  НС располагайтС Π±Π»ΠΎΠΊ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… инструкций Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС сразу послС двоСточия (послС if, while ΠΈ Ρ‚. Π΄.)

    ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

    • ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰ΠΈΠ΅ ΠΊΠΎΠ΄Ρƒ, Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΈΡ… отсутствиС.

    • РасполагайтС однострочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ послС ΠΊΠΎΠ΄Π° Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС ΠΈ отдСляйтС ΠΈΡ… ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ двумя ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с # ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°.

    ИмСна 

    • НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ символы `l’, `O’, ΠΈ `I’ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡˆΡ€ΠΈΡ„Ρ‚Π°Ρ… ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Ρ†ΠΈΡ„Ρ€Ρ‹.

    • ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ малСнькиС Π±ΡƒΠΊΠ²Ρ‹. Π‘Π»ΠΎΠ²Π° Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ символами подчёркивания. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

    Β name, name_with_several_words_in_it

    Β NAME, NAME_WITH_SEVERAL_WORDS_IN_IT

    num_letters = int(input()) Β  Β  Β  Β  # ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

    kolvo_bukv = int(input()) Β  Β  Β  Β  Β # НСвСрно 

    Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ 

    • РаздСляйтС опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ двумя пустыми строками. ΠžΡ‚Π΄Π΅Π»ΡΠΉΡ‚Π΅ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΡ‚ основного ΠΊΠΎΠ΄Π° двумя пустыми строками Π΄ΠΎ ΠΈ послС.

    • РаздСляйтС Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° логичСскиС части ΠΎΠ΄Π½ΠΎΠΉ пустой строкой.

    Β 

    Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Python-ΠΊΠΎΠ΄Π° / Π₯Π°Π±Ρ€

    Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

    Python, Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π΅Π³ΠΎ самый извСстный ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ CPython, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ быстрых расчСтов. Π˜Π½Π°Ρ‡Π΅ говоря, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρƒ Π½Π΅Π³ΠΎ Π½Π΅ такая ΡƒΠΆ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ. А Π²ΠΎΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ читаСмости отличная.

    О читаСмости ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΊΠ°ΠΊ Π΅Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ.

    ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ форматирования

    ИдСального форматирования ΠΊΠΎΠ΄Π° Π½Π΅ сущСствуСт. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ языка стоит ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ общСпринятыС ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π°. Π”Π° Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ссли срСди Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π‘++ Π΅Ρ‰Π΅ Π΄ΠΎ сих ΠΏΠΎΡ€ Π²ΠΎΠΉΠ½Ρ‹ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ скобки Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΈΠ»ΠΈ Π½Π΅Ρ‚.
    Для python’Π° основными ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ форматирования являСтся Β«C ΡΡ‚ΠΈΠ»ΡŒΒ». НС Ρ€Π΅Π΄ΠΊΠΎ Π² рассматриваСмый язык приходят ΠΈΠ· Π‘-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков, Π° для Π½ΠΈΡ… свойствСнно ΠΏΠΈΡΠ°Ρ‚ΡŒ с символами «)(;».
    Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π½Π΅ СдинствСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° избыточности написания конструкций. ΠŸΠΈΡ‚ΠΎΠ½, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Java, ΠΌΠ΅Π½Π΅Π΅ многословСн ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊ этому ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ большоС количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
    Π­Ρ‚ΠΎ Π΄Π²Π΅ основныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго.

    Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΊ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ

    Если для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ скорости исполнСния ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, хотя эти ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹, Ρ‚ΠΎ для форматирования тСкста сущСствуСт прям slyle guide β€” это pep8. Π”Π°Π»Π΅Π΅ Π΅Π³ΠΎ Π±ΡƒΠ΄Ρƒ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ «стандарт».
    ΠŸΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ стандарт ΠΌΠΎΠΆΠ½ΠΎ здСсь, Π½Π° русском языкС ΠΌΠΎΠΆΠ½ΠΎ здСсь
    Pep8 вСсьма ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ ΠΈ позволяСт программисту ΠΏΠΈΡΠ°Ρ‚ΡŒ Π Π•ΠΠ›Π¬ΠΠž Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄.

    Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:

    • ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ строк ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
    • ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² с исходным ΠΊΠΎΠ΄ΠΎΠΌ
    • Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ
    • соглашСния имСнования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ/классов, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
    • ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅

    Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ мноТСство ΠΏΡ€Π°Π²ΠΈΠ» форматирования ΠΊΠΎΠ΄Π°. Однако, стоит Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС python-программисты ΡΠΎΠ±Π»ΡŽΠ΄Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°.
    Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Google, ΠΈΠΌΠ΅ΡŽΡ‚ свои Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΊ написанию python-ΠΊΠΎΠ΄Π°, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь ΠΈ здСсь.
    Π’Π΅ΡΡŒΠΌΠ° интСрСсноС Ρ‡Ρ‚ΠΈΠ²ΠΎ, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ.

    АвтоматизируСм Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

    Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сколько всяких ΠΏΡ€Π°Π²ΠΈΠ» Π² pep8, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΡ‚ΡŒ Π·Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π°Π΄ΠΎΠ»Π³ΠΎ. Π’ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π»Π΅Π½ΠΈΠ²ΠΎ, Π΄Π° ΠΈ ΠΏΡ€ΠΈ написании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° сиравно Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ошибки ΠΏΡ€Π°Π²ΠΈΠ». Для этого рассмотрим ΠΊΠ°ΠΊ ΠΆΠ΅ сСбС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Тизнь.

    pep8

    Π”Π°Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ прСдставлСниС сколько ошибок оформлСния Π² ΠΊΠΎΠ΄Π΅, стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ pep8.
    Π£ Π½Π΅Π΅ достаточный список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт рСкурсивно ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ… Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ соотвСтствия стандарту pep8.
    Π’Ρ‹Π²ΠΎΠ΄ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ:

    $ pep8 --first optparse.py
    optparse.py:69:11: E401 multiple imports on one line
    optparse.py:77:1: E302 expected 2 blank lines, found 1
    optparse.py:88:5: E301 expected 1 blank line, found 0
    optparse.py:222:34: W602 deprecated form of raising exception
    optparse.py:347:31: E211 whitespace before '('
    optparse.py:357:17: E201 whitespace after '{'
    optparse.py:472:29: E221 multiple spaces before operator
    optparse.py:544:21: W601 .has_key() is deprecated, use 'in'

    По Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ: Π³Π΄Π΅ ошибка ΠΈ Ρ‡Ρ‚ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ.

    autopep8

    Ошибки стандарта часто ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ„Π°ΠΉΠ»Π° Π² Ρ„Π°ΠΉΠ»Ρƒ. И Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ сильноС ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ исправлСниС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ этом случаС Π½Π° Π°Ρ€Π΅Π½Ρƒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ autopep8.
    Как ΠΈ pep8, ΠΎΠ½ ΡƒΠΌΠ΅Π΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ошибки, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ…. Бписок исправляСмых ошибок форматирования ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь
    Π‘Π°ΠΌΠΎ использованиС autopep8 ΠΊΡ€Π°ΠΉΠ½Π΅ простоС ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

    $ autopep8 ./ --recursive --in-place -a

    ПослС выполнСния Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° рСкурсивно ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΠΎ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ°ΠΌ ΠΈ Π½Π°Ρ‡Π½Π΅Ρ‚ Π² самих ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ошибки.

    autoflake

    МоТно ΠΏΠΎΠΉΡ‚ΠΈ дальшС ΠΈ Π² качСствС оруТия Π²Π·ΡΡ‚ΡŒ autoflake. Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.
    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

    $ autoflake --in-place --remove-all-unused-imports --remove-unused-variables -r ./

    Π’Π΅ΠΌ самым Π±ΡƒΠ΄ΡƒΡ‚ рСкурсивно ΠΏΠΎΡ‡ΠΈΡ‰Π΅Π½Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

    unify

    ΠšΡ€Π°ΠΉΠ½ΠΈΠΉ, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° β€” это строки. ΠšΡ‚ΠΎ-Ρ‚ΠΎ Π»ΡŽΠ±ΠΈΡ‚ ΠΈΡ… ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ… апострофах, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ…. Π’ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ для этого сущСствуСт Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, которая позволяСт автоматичСски ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² соотвСтствиС β€” unify
    ИспользованиС:

    $ unify --in-place -r ./src/

    Как ΠΈ Π²Π΅Π·Π΄Π΅, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ своС грязноС Π΄Π΅Π»ΠΎ рСкурсивно для Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅.

    docformatter

    ВсС врСмя Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ самом ΠΊΠΎΠ΄Π΅, Π° ΠΎ коммСнтариях Π΅Ρ‰Π΅ Π½ΠΈ Ρ€Π°Π·Ρƒ Π½Π΅ шло Ρ€Π΅Ρ‡ΠΈ. Настало врСмя β€” docformatter. Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ привСсти ваши docstring ΠΏΠΎ соглашСнию PEP 257. БоглашСниС прСдписываСт ΠΊΠ°ΠΊ слСдуСт ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.
    ИспользованиС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π½ΠΈΡ‡ΡƒΡ‚ΡŒ Π½Π΅ слоТнСС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…:

    $ docformatter --in-place example.py
    А всС вмСстС ΠΌΠΎΠΆΠ½ΠΎ?

    Π’Ρ‹ΡˆΠ΅ описаны ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΈΡ… запуск ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ bash скрипт ΠΏΠΎΠ΄ магичСским Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ clean.bash ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ. А ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡ‚ΠΈ ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ wrapper Π½Π°Π΄ этими ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ β€” pyformat

    Π’Ρ‹Π²ΠΎΠ΄Ρ‹

    Python-ΠΊΠΎΠ΄ Π»Π΅Π³ΠΊΠΎ читаСтся, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΡ‚ΡŒ способы ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»Π°ΠΏΡˆΡƒ ΠΈ ΠΈΠ· Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
    Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±Ρ‹Π»ΠΈ ΠΎΠ·Π²ΡƒΡ‡Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ оформлСния ΠΊΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ способы поиска этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π‘Ρ‹Π»ΠΈ рассмотрСны нСсколько ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΡŠΡΠ½Ρ‹ оформлСния ΠΊΠΎΠ΄Π°.
    Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΠ·Π²ΡƒΡ‡ΠΈΡ‚ΡŒ вслух ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°, которая ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π° для любого языка: Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ, Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ pep8-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ β€” это постоянство стиля. Π’Ρ‹Π±Ρ€Π°Π»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ стилС Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π² этом ΠΆΠ΅ ΠΈ ΠΏΠΈΡˆΠΈΡ‚Π΅ вСсь ΠΊΠΎΠ΄.

    Если читатСлям Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно, Ρ‚ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΎΠΏΠΈΡˆΡƒ ΠΊΠ°ΠΊ Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ошибки Π² ΠΊΠΎΠ΄Π΅.

    python — ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² PEP-8 ΡƒΠΊΠ°Π·Π°Π½Π° максимальная Π΄Π»ΠΈΠ½Π° строки 79 символов?

    ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

    1. Около
    2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

    3. Для ΠΊΠΎΠΌΠ°Π½Π΄
    1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
      ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

    2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
      Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

    3. Вакансии
      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

    4. Π’Π°Π»Π°Π½Ρ‚
      НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

    5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
      ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

    .

    PEP 8 — Руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ для ΠΊΠΎΠ΄Π° Python

    Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ приводятся соглашСния ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ для ΠΊΠΎΠ΄Π° Python, содСрТащСго
    стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π² основном дистрибутивС Python. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, посмотритС
    ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ PEP, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ руководящиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ стиля для ΠΊΠΎΠ΄Π° C
    Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Python Π½Π° языкС C.

    Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈ PEP 257 (Docstring Conventions) Π±Ρ‹Π»ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈΠ·
    ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ эссС Π“Π²ΠΈΠ΄ΠΎ ΠΈΠ· руководства ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ Python с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ дополнСниями ΠΈΠ·
    Руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ Π‘Π°Ρ€Ρ€ΠΈ.

    Π­Ρ‚ΠΎ руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ развиваСтся ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ
    выявлСнныС ΠΈ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Π΅ соглашСния становятся ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²
    сам язык.

    МногиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ свои собствСнныС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ кодирования. Π’ случаС ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ
    ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ руководства для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    Одна ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΈΠ΄Π΅ΠΉ Π“Π²ΠΈΠ΄ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ читаСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ
    это написано. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ здСсь Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ
    Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ согласованным Π²ΠΎ всСм
    спСктр ΠΊΠΎΠ΄Π° Python. Как сказано Π² PEP 20, Β«Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β».

    Руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. БоотвСтствиС этому руководству ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ
    являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ.ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Π°ΠΆΠ½Π΅Π΅.
    Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ.

    Однако Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ — ΠΈΠ½ΠΎΠ³Π΄Π° руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ
    Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ просто Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹. Если ΡΠΎΠΌΠ½Π΅Π²Π°Π΅Ρ‚Π΅ΡΡŒ, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅
    суТдСниС. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ Ρ€Π΅ΡˆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ выглядит Π»ΡƒΡ‡ΡˆΠ΅ всСго. А Ρ‚Π°ΠΊΠΆΠ΅
    Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ!

    Π’ частности: Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для соблюдСния
    это PEP!

    НСкоторыС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вСскиС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:

    1. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π΄Π°ΠΆΠ΅
      для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° этим PEP.
    2. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π΅Π³ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ,
      ΠΏΠΎ историчСским ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ) — хотя это Ρ‚ΠΎΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ
      ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‡ΡƒΠΆΠΎΠΉ бСспорядок (Π² истинном стилС XP).
    3. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ рассматриваСмый ΠΊΠΎΠ΄ появился Π΅Ρ‰Π΅ Π΄ΠΎ ввСдСния
      Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, ΠΈ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для измСнСния этого ΠΊΠΎΠ΄Π°.
    4. Когда ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ совмСстимым со старыми вСрсиями
      Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡƒΡŽ руководством ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ.

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отступа.

    Π›ΠΈΠ½ΠΈΠΈ продолТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ элСмСнты Π»ΠΈΠ±ΠΎ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ.
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ нСявноС соСдинСниС строк Python Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, скобках ΠΈ
    скобы ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ выступа . ΠŸΡ€ΠΈ использовании подвСшивания
    слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ отступы; Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ
    Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС ΠΈ дальнСйшиС отступы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для
    Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ сСбя ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ строки:

    # Π’Π΅Ρ€Π½Ρ‹ΠΉ:
    
    # Π’Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½ΠΎ ΠΏΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡƒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŽ.
    foo = long_function_name (var_one, var_two,
                             var_three, var_four)
    
    # Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отступа), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ….def long_function_name (
            var_one, var_two, var_three,
            var_four):
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (var_one)
    
    # ВисячиС отступы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.
    foo = long_function_name (
        var_one, var_two,
        var_three, var_four)
     
    # ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
    
    # АргумСнты Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅.
    foo = long_function_name (var_one, var_two,
        var_three, var_four)
    
    # ВрСбуСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΌ.
    def long_function_name (
        var_one, var_two, var_three,
        var_four):
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (var_one)
     

    ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для строк продолТСния.

    Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ:

    # ВисячиС отступы * ΠΌΠΎΠ³ΡƒΡ‚ * ΠΈΠΌΠ΅Ρ‚ΡŒ отступ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ 4 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².
    foo = long_function_name (
      var_one, var_two,
      var_three, var_four)
     

    Когда условная Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if достаточно Π΄Π»ΠΈΠ½Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ
    Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» написан Π² нСсколько строк, стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ
    комбинация Π΄Π²ΡƒΡ…ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли) плюс ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π΅Π»,
    плюс ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ скобка создаСт СстСствСнный 4-ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ для
    ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки многострочного условного.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅
    ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ΄Π° с отступом, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if,
    ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ СстСствСнно Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ отступ Π΄ΠΎ 4 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². Π­Ρ‚ΠΎΡ‚ PEP Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚
    чСткая позиция ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ (ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ) Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅
    условныС строки ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if.
    ΠŸΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π² этой ситуации Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚, Π½ΠΎ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ:

    # Π‘Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… отступов.
    Ссли (this_is_one_thing и
        that_is_another_thing):
        сдСлай Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ()
    
    # Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹
    # ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° подсвСтки синтаксиса.Ссли (this_is_one_thing ΠΈ
        that_is_another_thing):
        # ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Π° условия Π²Π΅Ρ€Π½Ρ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΈΡ‚ΡŒ.
        сдСлай Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ()
    
    # Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ Π² ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ строку продолТСния.
    Ссли (this_is_one_thing
            and that_is_another_thing):
        сдСлай Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ()
     

    (Π’Π°ΠΊΠΆΠ΅ см. ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, слСдуСт Π»ΠΈ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎ ΠΈΠ»ΠΈ послС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ
    ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π½ΠΈΠΆΠ΅.)

    Π—Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ фигурная скобка / квадратная скобка Π² многострочных конструкциях ΠΌΠΎΠΆΠ΅Ρ‚
    Π»ΠΈΠ±ΠΎ Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π½Π΅ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΌ символом послСднСго
    строка списка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    my_list = [
        1, 2, 3,
        4, 5, 6,
        ]
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = some_function_that_takes_arguments (
        'Π°', 'Π±', 'Π²',
        'd', 'e', ​​'f',
        )
     

    ΠΈΠ»ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½ ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ символом строки,
    запускаСт ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    my_list = [
        1, 2, 3,
        4, 5, 6,
    ]
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = some_function_that_takes_arguments (
        'Π°', 'Π±', 'Π²',
        'd', 'e', ​​'f',
    )
     

    ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ — ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ отступа.

    Π’ΠΊΠ»Π°Π΄ΠΊΠΈ

    слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для соотвСтствия с ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ
    ΡƒΠΆΠ΅ с отступом табуляциСй.

    Python 3 Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ использованиС табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² для отступа.

    Код Python 2 с отступом ΠΈΠ· табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ
    ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² использованиС ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².

    ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Python 2 с
    опция -t Π²Ρ‹Π΄Π°Π΅Ρ‚ прСдупрСТдСния ΠΎ ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅Π·Π°ΠΊΠΎΠ½Π½ΠΎ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Π΅Ρ‚
    табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. ΠŸΡ€ΠΈ использовании -tt эти прСдупрСТдСния становятся ошибками.Π­Ρ‚ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ΡΡ!

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ всС строки Π΄ΠΎ 79 символов.

    Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² тСкста с мСньшими структурными ограничСниями
    (строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ), Π΄Π»ΠΈΠ½Π° строки Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° 72
    символы.

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΎΠΊΠ½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° позволяСт
    нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ, ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ использовании ΠΊΠΎΠ΄Π°
    просмотритС инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄Π²Π΅ вСрсии Π² сосСдних столбцах.

    ΠžΠ±Π΅Ρ€Ρ‚ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ инструмСнтов Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ структуру
    ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎ услоТняСт ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅.ΠŸΡ€Π΅Π΄Π΅Π»Ρ‹ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ для
    Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ пСрСноса Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ с ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ ΠΎΠΊΠ½Π° 80, Π΄Π°ΠΆΠ΅
    Ссли инструмСнт ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π³Π»ΠΈΡ„ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² послСдний столбСц ΠΏΡ€ΠΈ пСрСносС
    Π»ΠΈΠ½ΠΈΠΉ. НСкоторыС Π²Π΅Π±-инструмСнты ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ динамичСский пСрСнос строк.

    НСкоторыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ строку. Для ΠΊΠΎΠ΄Π° поддСрТиваСтся
    ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ прСимущСствСнно ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ соглашСнию ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ
    ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π»ΠΈΠΌΠΈΡ‚ Π΄Π»ΠΈΠ½Ρ‹ строки Π΄ΠΎ 99 символов,
    ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² 72
    символы.

    Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python консСрвативна ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ограничСния
    строки Π΄ΠΎ 79 символов (ΠΈ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ / ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎ 72).

    ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ способ пСрСноса Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк — использованиС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Python
    ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ строки Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, скобках ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках. Π”Π»ΠΈΠ½Π½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ
    ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° нСсколько строк, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² выраТСния Π²
    ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки. Π˜Ρ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто использования ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹.
    для продолТСния строки.

    ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ косыС Ρ‡Π΅Ρ€Ρ‚Ρ‹ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ умСстными.НапримСр, Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ,
    нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² with Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСявноС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅, поэтому
    допустимы ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ косыС Ρ‡Π΅Ρ€Ρ‚Ρ‹:

    с open ('/ path / to / some / file / you / want / to / read') как file_1, \
         open ('/ ΠΏΡƒΡ‚ΡŒ / ΠΊ / Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ / Ρ„Π°ΠΉΠ»Ρƒ / Π±ΡƒΠ΄Π΅Ρ‚ / записан', 'w') ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»_2:
        file_2.write (file_1.read ())
     

    (см. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ обсуТдСниС многострочных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² if для дальнСйшСго
    мысли ΠΎΠ± отступах Ρ‚Π°ΠΊΠΈΡ… многострочных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².)

    Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠΉ случай — с утвСрТдСниями.

    Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ строки сдСлано ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

    Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ дСсятилСтий рСкомСндовался ΡΡ‚ΠΈΠ»ΡŒ Π²Π·Π»ΠΎΠΌΠ° послС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².
    Но это ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ двумя способами: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚
    разбросаны ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ столбцам Π½Π° экранС, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
    пСрСмСстился ΠΎΡ‚ своСго ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ строку. Π—Π΄Π΅ΡΡŒ Π³Π»Π°Π·
    Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹, Π° ΠΊΠ°ΠΊΠΈΠ΅
    Π²Ρ‹Ρ‡Ρ‚Π΅Π½ΠΎ:

    # ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
    # ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ находится Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚ своих ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ²
    Π΄ΠΎΡ…ΠΎΠ΄ = (валовая_ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π° +
              taxable_interest +
              (Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Π΄Ρ‹ - qual_dividends) -
              ira_deduction -
              student_loan_interest)
     

    Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ удобочитаСмости, ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΈΡ… ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ
    слСдуйтС ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌΡƒ соглашСнию.Π”ΠΎΠ½Π°Π»ΡŒΠ΄ ΠšΠ½ΡƒΡ‚ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅
    ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² своСй сСрии Β«ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈ Π½Π°Π±ΠΎΡ€ тСкста Β»: Β«Π₯отя Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹
    Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°Π±Π·Π°Ρ†Π° всСгда Ρ€Π°Π·Ρ€Ρ‹Π² послС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ,
    ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ всСгда ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ опСрациями Β».

    БлСдуя Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π°Π΅Ρ‚ большС
    Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄:

    # Π’Π΅Ρ€Π½Ρ‹ΠΉ:
    # Π»Π΅Π³ΠΊΠΎ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ с ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ
    Π΄ΠΎΡ…ΠΎΠ΄ = (валовая_ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π°
              + taxable_interest
              + (Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Π΄Ρ‹ - qual_dividends)
              - ira_deduction
              - student_loan_interest)
     

    Π’ ΠΊΠΎΠ΄Π΅ Python допустимо Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎ ΠΈΠ»ΠΈ послС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ
    ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Ссли соглашСниС согласовано локально.Для Π½ΠΎΠ²Ρ‹Ρ…
    прСдлагаСтся ΡΡ‚ΠΈΠ»ΡŒ ΠšΠ½ΡƒΡ‚Π°.

    ΠžΠΊΡ€ΡƒΠΆΠΈΡ‚ΡŒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня двумя пустыми
    Π»ΠΈΠ½ΠΈΠΉ.

    ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ класса Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π΅Π».
    линия.

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

    ΠžΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пустыС строки Π² функциях для обозначСния логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².L) символ ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΊΠ°ΠΊ
    ΠΏΡ€ΠΎΠ±Π΅Π»; МногиС инструмСнты Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ эти символы ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ страниц, поэтому
    Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для раздСлСния страниц связанных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² вашСго Ρ„Π°ΠΉΠ»Π°.
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ просмотра ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ
    control-L Π² качСствС ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π½Π° Π΅Π³ΠΎ мСстС Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π³Π»ΠΈΡ„.

    Код Π² основном дистрибутивС Python всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ UTF-8 (ΠΈΠ»ΠΈ ASCII
    Π² Python 2).

    Π€Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ASCII (Π² Python 2) ΠΈΠ»ΠΈ UTF-8 (Π² Python 3), Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ
    объявлСниС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

    Π’ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ нСстандартныС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для
    Π² цСлях тСстирования ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΠ»ΠΈ строкС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π°
    имя, содСрТащСС символы, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ ASCII; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ \ x,
    \ u, \ U ΠΈΠ»ΠΈ \ N escape-символы — ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ способ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
    Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅-ASCII Π² строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ….

    Для Python 3.0 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсий прСдписана ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° для
    стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (см. PEP 3131): всС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² Python
    стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π”ΠžΠ›Π–ΠΠ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ASCII ΠΈ Π”ΠžΠ›Π–ΠΠ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
    АнглийскиС слова Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях сокращСния ΠΈ
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ английскиС тСхничСскиС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹).ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, строка
    Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ASCII. ЕдинствСнныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:
    (a) тСстовыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для тСстирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ ASCII, ΠΈ
    (Π±) ΠΈΠΌΠ΅Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΎΠ². Авторы, Ρ‡ΡŒΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π΅ основаны Π½Π°
    Латинский Π°Π»Ρ„Π°Π²ΠΈΡ‚ (latin-1, Π½Π°Π±ΠΎΡ€ символов ISO / IEC 8859-1) Π”ΠžΠ›Π–Π•Π ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ
    транслитСрация ΠΈΡ… ΠΈΠΌΠ΅Π½ Π² этом Π½Π°Π±ΠΎΡ€Π΅ символов.

    ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ с глобальной Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ прСдлагаСтся ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ
    аналогичная ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°.

    • Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… строках:

      # Π’Π΅Ρ€Π½Ρ‹ΠΉ:
      ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
      import sys
       
      # ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
      import sys, os
       

      МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

      # Π’Π΅Ρ€Π½Ρ‹ΠΉ:
      ΠΈΠ· подпроцСсса ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Popen, PIPE
       
    • Π˜ΠΌΠΏΠΎΡ€Ρ‚ всСгда помСщаСтся Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π° сразу послС любого модуля
      ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ константами модуля.

      Π˜ΠΌΠΏΠΎΡ€Ρ‚ слСдуСт ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС:

      1. Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.
      2. Бвязанный ΠΈΠΌΠΏΠΎΡ€Ρ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… сторон.
      3. Π˜ΠΌΠΏΠΎΡ€Ρ‚ для локального прилоТСния / Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

      ΠœΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° слСдуСт ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ строку.

    • РСкомСндуСтся Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹
      ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Π΅Π΄ΡƒΡ‚ сСбя Π»ΡƒΡ‡ΡˆΠ΅ (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡˆΠΈΠ±Π°ΡŽΡ‚ΡΡ
      сообщСния), Ссли систСма ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° настроСна Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
      ΠΊΠΎΠ³Π΄Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² sys.ΠΏΡƒΡ‚ΡŒ):

      import mypkg.sibling
      ΠΈΠ· mypkg import sibling
      ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° mypkg.sibling
       

      Однако явный ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ являСтся ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ
      Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со слоТными ΠΌΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²
      Π³Π΄Π΅ использованиС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π±Ρ‹Π»ΠΎ Π±Ρ‹ излишнС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ:

      ΠΎΡ‚ . ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ Π±Ρ€Π°Ρ‚
      ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° .sibling
       

      Код стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ слоТных ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ всСгда
      ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚.

      НСявный ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½
      Π² Python 3.

    • ΠŸΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ класса ΠΈΠ· модуля, содСрТащСго класс, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ
      Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ это:

      ΠΈΠ· myclass import MyClass
      ΠΈΠ· foo.bar.yourclass ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ YourClass
       

      Если это написаниС Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΈΡ… явно:

      ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΉ класс
      import foo.bar.yourclass
       

      ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ myclass.MyClass ΠΈ foo.bar.yourclass.YourClass.

    • Π˜ΠΌΠΏΠΎΡ€Ρ‚ подстановочных Π·Π½Π°ΠΊΠΎΠ² (ΠΈΠ· import *) слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ
      ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ нСясным, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² пространствС ΠΈΠΌΠ΅Π½,
      сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ инструмСнты.БущСствуСт ΠΎΠ΄ΠΈΠ½
      ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° с подстановочными Π·Π½Π°ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ
      Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ интСрфСйс ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ API (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ
      чистая рСализация интСрфСйса Python с опрСдСлСниями
      ΠΈΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ модуля ускоритСля ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ опрСдСлСния
      Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстно).

      ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ
      общСдоступныС ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ интСрфСйсы ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.

    ΠœΠΎΠ΄ΡƒΠ»ΡŒ уровня «dunders» (Ρ‚.Π΅. ΠΈΠΌΠ΅Π½Π° с двумя Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌΠΈ ΠΈ двумя ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌΠΈ
    подчСркивания), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ __all__, __author__, __version__,
    ΠΈ Ρ‚. Π΄. слСдуСт Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ послС строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ модуля, Π½ΠΎ Π΄ΠΎ любого ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
    выписки , ΠΊΡ€ΠΎΠΌΠ΅ ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° __future__. Python Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹
    future-import Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΡ€ΠΎΠΌΠ΅
    строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

    "" "Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ модуля.
    
    Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ.
    "" "
    
    from __future__ import barry_as_FLUFL
    
    __all__ = ['a', 'b', 'c']
    __version__ = '0,1'
    __author__ = 'ΠšΠ°Ρ€Π΄ΠΈΠ½Π°Π» Бигглс'
    
    ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
    import sys
     

    ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ запятыС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ случаСв, ΠΊΠΎΠ³Π΄Π°
    созданиС ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта (Π° Π² Python 2 Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ сСмантика для
    заявлСниС ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ).Для наглядности рСкомСндуСтся ΠΎΠΊΡ€ΡƒΠΆΠΈΡ‚ΡŒ
    послСдний Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках (тСхничСски ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ):

    # Π’Π΅Ρ€Π½Ρ‹ΠΉ:
    ЀАЙЛЫ = ('setup.cfg',)
     
    # ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
    FILES = 'setup.cfg',
     

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

    # Π’Π΅Ρ€Π½Ρ‹ΠΉ:
    ЀАЙЛЫ = [
        'setup.cfg',
        'tox.ini',
        ]
    ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ЀАЙЛЫ,
               error = True,
               )
     
    # ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
    FILES = ['setup.cfg', 'tox.ini',]
    ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ЀАЙЛЫ, ошибка = True,)
     

    БоглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Python Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Ρ‹, поэтому
    ΠΌΡ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ этого ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ согласованного — Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²ΠΎΡ‚
    Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ Π² настоящСС врСмя стандарты имСнования.НовыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹
    (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сторонниС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ записаны Π² эти
    стандарты, Π½ΠΎ Ссли Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡΡ‚ΠΈΠ»ΡŒ,
    внутрСнняя ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅.

    ИмСна, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΠ°ΠΊ общСдоступныС части API, Π΄ΠΎΠ»ΠΆΠ½Ρ‹
    слСдуйтС соглашСниям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ использованиС, Π° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

    Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… стилСй имСнования. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΌΠ΅Ρ‚ΡŒ
    ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡ‚ΠΈΠ»ΡŒ имСнования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ
    ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для.

    ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ стили имСнования:

    • b (ΠΎΠ΄Π½Π° строчная Π±ΡƒΠΊΠ²Π°)

    • B (ΠΎΠ΄Π½Π° заглавная Π±ΡƒΠΊΠ²Π°)

    • строчная

    • lower_case_with_underscores

    • Π’Π•Π Π₯ΠΠ˜Π™

    • UPPER_CASE_WITH_UNDERSCORES

    • CapitalizedWords (ΠΈΠ»ΠΈ CapWords, ΠΈΠ»ΠΈ CamelCase — Ρ‚Π°ΠΊ Π½Π°Π·Π²Π°Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ
      нСровности Π±ΡƒΠΊΠ²).Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° извСстно
      ΠΊΠ°ΠΊ StudlyCaps.

      ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ использовании Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€ Π² CapWords всС Π±ΡƒΠΊΠ²Ρ‹
      Π±ΡƒΠΊΠ²Ρ‹ Π°ΠΊΡ€ΠΎΠ½ΠΈΠΌΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, HTTPServerError Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ
      HttpServerError.

    • ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ рСгистр (отличаСтся ΠΎΡ‚ CapitalizedWords Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Π½ΠΈΠΆΠ½ΠΈΠΌ рСгистром
      Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€!)

    • Capitalized_Words_With_Underscores (ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ²ΠΎ!)

    Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ использования ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ прСфикса для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ связанных
    ΠΈΠΌΠ΅Π½Π° вмСстС. Π’ Python это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСчасто, Π½ΠΎ упоминаСтся
    для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹.НапримСр, функция os.stat () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚
    ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°, ΠΊΠ°ΠΊ st_mode,
    st_size, st_mtime ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. (Π­Ρ‚ΠΎ сдСлано, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ
    соотвСтствиС с полями структуры систСмного Π²Ρ‹Π·ΠΎΠ²Π° POSIX, которая
    ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ программистам, Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ с этим.)

    Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° X11 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ X для всСх своих ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’
    Python этот ΡΡ‚ΠΈΠ»ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ считаСтся Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚
    ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ прСфикс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
    с прСфиксом ΠΈΠΌΠ΅Π½ΠΈ модуля.

    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ с использованиСм Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ…
    Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ΡΡ подчСркивания (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ
    условноС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅):

    • _single_leading_underscore: слабый ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Β«Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ использования».
      НапримСр. from M import * Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ
      с ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.

    • single_trailing_underscore_: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ соглашСнию, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ
      ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Python, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

      tkinter.Toplevel (мастСр, класс _ = 'ClassName')
       
    • __double_leading_underscore: ΠΏΡ€ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° класса
      Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ (Π²Π½ΡƒΡ‚Ρ€ΠΈ класса FooBar __boo становится
      _FooBar__boo; Π‘ΠΌΠΎΡ‚Ρ€ΠΈ Π½ΠΈΠΆΠ΅).

    • __double_leading_and_trailing_underscore__: «магичСскиС» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ»ΠΈ
      Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΆΠΈΠ²ΡƒΡ‚ Π² пространствах ΠΈΠΌΠ΅Π½, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.
      НапримСр. __init__, __import__ ΠΈΠ»ΠΈ __file__. Никогда Π½Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°ΠΉΡ‚Π΅
      Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² соотвСтствии с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

    ИмСна, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ

    Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ символы ‘l’ (строчная Π±ΡƒΠΊΠ²Π° el), ‘O’ (прописная
    Π±ΡƒΠΊΠ²Π° ΠΎΠΉ) ΠΈΠ»ΠΈ ‘I’ (заглавная Π±ΡƒΠΊΠ²Π° Π³Π»Π°Π·) ΠΊΠ°ΠΊ односимвольная пСрСмСнная
    ΠΈΠΌΠ΅Π½Π°.

    Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡˆΡ€ΠΈΡ„Ρ‚Π°Ρ… эти символы Π½Π΅ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌΡ‹ ΠΎΡ‚
    Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΈ ноль.Когда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ соблазн ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«lΒ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ вмСсто этого Β«LΒ».

    ИмСна ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

    ΠœΠΎΠ΄ΡƒΠ»ΠΈ

    Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС. ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΈΠΌΠ΅Π½ΠΈ модуля, Ссли это ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Python
    Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС, хотя использованиС
    ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π΅ рСкомСндуСтся.

    Когда ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, написанный Π½Π° C ΠΈΠ»ΠΈ C ++, ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ
    ΠœΠΎΠ΄ΡƒΠ»ΡŒ Python, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ)
    интСрфСйс, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ C / C ++ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅
    (Π΅.Π³. _Ρ€Π°Π·ΡŠΠ΅ΠΌ).

    ИмСна классов

    ИмСна классов ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ соглашСниС CapWords.

    БоглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вмСсто этого Π² случаях, ΠΊΠΎΠ³Π΄Π°
    интСрфСйс Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² основном ΠΊΠ°ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ.

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ для встроСнных ΠΈΠΌΠ΅Π½ сущСствуСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ соглашСниС: Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ встроСнных
    ΠΈΠΌΠ΅Π½Π° — это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ слова (ΠΈΠ»ΠΈ Π΄Π²Π° слова, соСдинСнныС вмСстС), с CapWords
    соглашСниС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΠΌΠ΅Π½ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ встроСнных констант.

    ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°

    ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°, прСдставлСнныС Π² PEP 484, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CapWords
    прСдпочитая ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°: T, AnyStr, Num.РСкомСндуСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ
    суффиксы _co ΠΈΠ»ΠΈ _contra ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ для объявлСния ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Ρ…
    ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ соотвСтствСнно:

    ΠΎΡ‚ Π²Π²ΠΎΠ΄Π° import TypeVar
    
    VT_co = TypeVar ('VT_co', ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹ΠΉ = Π˜ΡΡ‚ΠΈΠ½Π°)
    KT_contra = TypeVar ('KT_contra', ΠΊΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ = Π˜ΡΡ‚ΠΈΠ½Π°)
     

    ИмСна ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ классами, соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… классов
    примСняСтся здСсь. Однако Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ суффикс «Ошибка» Π½Π° своСм
    ΠΈΠΌΠ΅Π½Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (Ссли ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ являСтся ошибкой).

    ИмСна Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

    (Π‘ΡƒΠ΄Π΅ΠΌ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для использования Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля
    Ρ‚ΠΎΠ»ΡŒΠΊΠΎ.) УсловныС обозначСния ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

    ΠœΠΎΠ΄ΡƒΠ»ΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для использования Ρ‡Π΅Ρ€Π΅Π· ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· M *, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
    ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ __all__ для прСдотвращСния экспорта Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅
    староС соглашСниС ΠΎ прСфиксС Ρ‚Π°ΠΊΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅
    Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ «ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ
    Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Β»).

    ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

    ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС, Π° слова Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹
    ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ читаСмости.

    ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ соглашСнию, Ρ‡Ρ‚ΠΎ ΠΈ ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

    mixedCase допускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅Ρ… контСкстах, Π³Π΄Π΅ это ΡƒΠΆΠ΅
    ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, threading.py), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ
    ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ.

    АргумСнты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

    ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ self Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² экзСмпляра.

    ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ cls Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса.

    Если имя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом, ΠΎΠ½ΠΎ
    ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π»ΡƒΡ‡ΡˆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Π·Π½Π°ΠΊ подчСркивания, Ρ‡Π΅ΠΌ
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сокращСниС ΠΈΠ»ΠΈ искаТСниС правописания.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ class_ Π»ΡƒΡ‡ΡˆΠ΅
    Ρ‡Π΅ΠΌ clss. (Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… столкновСний, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ
    синоним.)

    ИмСна ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° имСнования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: строчныС Π±ΡƒΠΊΠ²Ρ‹ со словами, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ
    ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ читаСмости.

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ символ подчСркивания Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ экзСмпляров
    ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ с подклассами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π²Π° Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… символа подчСркивания для
    Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° измСнСния ΠΈΠΌΠ΅Π½ΠΈ Python.

    Python измСняСт эти ΠΈΠΌΠ΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠΌΠ΅Π½ΠΈ класса: Ссли класс Foo ΠΈΠΌΠ΅Π΅Ρ‚
    Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ __a, Foo Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ.__a. (An
    настойчивый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ, Π²Ρ‹Π·Π²Π°Π² Foo._Foo__a.)
    Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅
    имя ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Π² классах, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для создания подклассов.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ разногласия ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ использования __names (см. НиТС).

    ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹

    ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ модуля ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π²ΠΎ всСх
    Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ с ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌΠΈ слова. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚
    MAX_OVERFLOW ΠΈ TOTAL.

    Π”ΠΈΠ·Π°ΠΉΠ½ для наслСдования

    ВсСгда Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра
    (ΡΠΎΠ±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ: Β«Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹Β») Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ общСдоступными ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ.Если Π²
    сомнСваюсь, Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Π½Π΅ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅; Π»Π΅Π³Ρ‡Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ
    ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ.

    ΠžΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ — это Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅ ΠΎΡ‚ нСсвязанных ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² вашСго
    класс для использования, с вашим ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ нСсовмСстимости
    измСнСния. НСпубличныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ — это Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌΠΈ сторонами; Π²Ρ‹ Π½Π΅ Π΄Π°Π΅Ρ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅
    Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π½Π΅ измСнятся ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

    ΠœΡ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ здСсь Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «Ρ‡Π°ΡΡ‚Π½Ρ‹ΠΉ», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° самом Π΄Π΅Π»Π΅ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚
    private Π² Python (Π±Π΅Π· Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹).

    Другая катСгория Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² — это Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ
    «подкласс APIΒ» (часто Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Β«Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌΒ» Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках). НСкоторыС
    классы ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для наслСдования, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ измСнСния
    аспСкты повСдСния класса. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅
    Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ принятии Ρ‡Π΅Ρ‚ΠΊΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ общСдоступными,
    ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ API подкласса, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ
    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вашим Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом.

    ИмСя это Π² Π²ΠΈΠ΄Ρƒ, Π²ΠΎΡ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Pythonic:

    • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠΉ.

    • Если имя вашСго общСдоступного Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом,
      Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Π΅Ρ† подчСркивания ΠΊ ΠΈΠΌΠ΅Π½ΠΈ вашСго Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°. Π­Ρ‚ΠΎ
      ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ искаТСнного написания. (Однако,
      нСсмотря Π½Π° это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, «cls» являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ написаниСм для любого
      пСрСмСнная ΠΈΠ»ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ извСстСн ΠΊΠ°ΠΊ класс, особСнно
      ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса.)

      ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1. Π‘ΠΌ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Ρ‹ΡˆΠ΅ для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса.

    • Для простых Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² общСдоступных Π΄Π°Π½Π½Ρ‹Ρ… Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ
      имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π±Π΅Π· слоТных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² доступа / ΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π°.Π₯Ρ€Π°Π½ΠΈΡ‚ΡŒ
      имСя Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Python обСспСчиваСт Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌΡƒ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ,
      Ссли Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ простой Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ΅Π½ расти
      Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π’ этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойства, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ
      Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ рСализация Π·Π° простым доступом ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…
      синтаксис.

      ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1. Бвойства Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с классами Π½ΠΎΠ²ΠΎΠ³ΠΎ стиля.

      ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2: ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ повСдСния,
      хотя с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌΠΈ эффСктами, ΠΊΠ°ΠΊ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π² Ρ†Π΅Π»ΠΎΠΌ всС Π² порядкС.

      ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 3. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования свойств для дорогостоящих вычислСний.
      ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ; ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° заставляСт Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ
      доступ (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ.

    • Если ваш класс ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для подкласса, ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹
      Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ подклассы использовали, рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ наимСнования ΠΈΡ… с
      Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ подчСркивания Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈ Π±Π΅Π· подчСркивания Π² ΠΊΠΎΠ½Ρ†Π΅. Π­Ρ‚Π°
      Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ измСнСния ΠΈΠΌΠ΅Π½ΠΈ Python, Π³Π΄Π΅ имя
      class искаТаСтся Π² ΠΈΠΌΠ΅Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ
      ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΠΈΠΌΠ΅Π½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ подклассы
      Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

      ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² искаТСнном ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ простоС имя класса.
      имя, поэтому, Ссли подкласс Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ имя класса ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚
      name, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½.

      ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… цСлях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ
      __getattr __ (), ΠΌΠ΅Π½Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Однако искаТСниС ΠΈΠΌΠ΅Π½ΠΈ
      Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ Π»Π΅Π³ΠΊΠΎ выполняСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

      ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 3: НС всСм нравится ΠΈΡΠΊΠ°ΠΆΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π°. ΠŸΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
      Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ случайного совпадСния ΠΈΠΌΠ΅Π½ с ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ использованиСм
      ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Ρ‹.

    Π›ΡŽΠ±Ρ‹Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ общСдоступным интСрфСйсам.
    БоотвСтствСнно, Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ
    ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ интСрфСйсами.

    Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ интСрфСйсы ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ общСдоступными, Ссли докумСнтация
    явно ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΈΡ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ интСрфСйсами, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ
    ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости. ВсС Π½Π΅Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅
    интСрфСйсы слСдуСт ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ.

    Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ самоанализ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ
    ΠΈΠΌΠ΅Π½Π° Π² ΠΈΡ… общСдоступном API с использованиСм Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° __all__. Настройка
    __all__ Π² пустой список ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ модуля Π½Π΅Ρ‚ общСдоступного API.

    Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройкС __all__ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ интСрфСйсы (ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹,
    ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, классы, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°) всС Π΅Ρ‰Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ
    с прСфиксом ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ подчСркивания.

    Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ‚Π°ΠΊΠΆΠ΅ считаСтся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ, Ссли ΠΎΠ½ содСрТит пространство ΠΈΠΌΠ΅Π½
    (ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ»ΠΈ класс) считаСтся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ.

    Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° всСгда слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π΄Π΅Ρ‚Π°Π»ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
    Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° косвСнный доступ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ.
    Ссли ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ явно Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ содСрТащСго модуля
    API, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ os.path ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ __init__ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт
    Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

    .

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *