пСрСнос ΠΊΠΎΠ΄Π° Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку python

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ строк ΠΊΠΎΠ΄Π° Python

PEP-8 Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ строки ΠΊΠΎΠ΄Π° Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ 79 символов. Π‘ этим ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΡ‚ΡŒΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²Π»Π΅Π·Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ Π½Π° наши ΡˆΠΈΡ€ΠΎΠΊΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹.

👨‍🎓 Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ строки, разбивая слоТныС условия ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части, вынося ΠΈΡ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с осмыслСнными названиями.

Если Π΅ΡΡ‚ΡŒ острая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎΠ³Π΄Π° приходится ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки. МоТно Π΄Π΅Π»Π°Ρ‚ΡŒ двумя способами: скобками ΠΈ слэшСм.

Если, ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° скобка (круглая, квадратная ΠΈΠ»ΠΈ фигурная Π² зависимости ΠΎΡ‚ контСкста), Π½ΠΎ ΠΎΠ½Π° Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚Π° Π² этой строкС, Ρ‚ΠΎ Python Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ скобку (Π°Π½Π³Π». implicit line joining). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ скобки ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹. Π‘Π΅Π· скобок ΠΊΠΎΠ΄ Π½Π΅ скомпилируСтся ΠΈΠ·-Π·Π° отступов, Π° Ссли ΠΈΡ… ΡƒΠ±Ρ€Π°Ρ‚ΡŒ, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π΅Π½: income станСт gross_wages, Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ эффСкта!

ΠœΠ΅Ρ‚ΠΎΠ΄ пСрСноса ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слэшСм. Π‘Ρ‚Π°Π²ΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш ΠΊΠΎΠ½Ρ†Π΅ строки ΠΈ сразу энтСр (пСрСнос строки): Ρ‚ΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ (Π°Π½Π³Π». explicit line joining), Π½Π΅ взирая Π½Π° отступы, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ΠΈ написаны Π² ΠΎΠ΄Π½Ρƒ строку:

Π•Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ со слэшСм:

ΠŸΠΎΡ‡Π΅ΠΌΡƒ скобки Π»ΡƒΡ‡ΡˆΠ΅ для пСрСноса:

🐉 Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΊΠ°Π½Π°Π»Π° @pyway. ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΌΠΎΠΉ ΠΊΠ°Π½Π°Π» Π² Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ @pyway 👈

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ (faq)

Π‘ Ρ‚Ρ€ΠΎΠΊΠΈ Π² языкС программирования Python – это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов. НаравнС с bool, int ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ…, Ρ€Π°Π±ΠΎΡ‚Π° со строковым Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… являСтся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ программирования, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π΄ΠΊΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ прилоТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ тСкст.

Вводная информация ΠΎ строках

Как ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, Π² Python Π΅ΡΡ‚ΡŒ большая коллСкция Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со строковым Ρ‚ΠΈΠΏΠΎΠΌ.

Π§Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой строки Π² Python

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠŸΠΈΡ‚ΠΎΠ½Π°, строка – это упорядочСнная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, которая ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ простого тСкста.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… string ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² случаС, ΠΊΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² тСкстовой Ρ„ΠΎΡ€ΠΌΠ΅.

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ строк

Π›ΠΈΡ‚Π΅Ρ€Π°Π» – способ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π² случаС строк ΠŸΠΈΡ‚ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ нСсколько основных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

>>> ‘string’ # ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ‘string’ >>> «string» # Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ‘string’ >>> «»»string»»» ‘string’ >>> »’string»’ ‘string’

Если Π²Π½ΡƒΡ‚Ρ€ΠΈ строки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΈ сама строка Π±Ρ‹Π»Π° создана с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

>>> ‘book «war and peace»‘ # Ρ€Π°Π·Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ‘book «war and peace»‘ >>> «book ‘war and peace'» # Ρ€Π°Π·Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ «book ‘war and peace'» >>> «book \»war and peace\»» # экранированиС ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ‘book «war and peace»‘ >>> ‘book \’war and peace\» # экранированиС ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° «book ‘war and peace'»

💡 Π Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ строками с ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ Π½Π΅Ρ‚ – это ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅

КакиС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ – Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π²Π°ΠΌ, соглашСниС PEP 8 Π½Π΅ Π΄Π°Π΅Ρ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ использованию ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ Π΅Π³ΠΎ. Однако Ссли Π² стокС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΆΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ – обратная косая Ρ‡Π΅Ρ€Ρ‚Π° Π² строкС ΡƒΡ…ΡƒΠ΄ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°.

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° строк

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ вСрсии языка программирования Python всС строки ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Unicode-символов.

Π’ Python 3 ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ исходного ΠΊΠΎΠ΄Π° – UTF-8. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ вСрсии ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ использовалась ASCII. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ объявлСниС Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Ρ„Π°ΠΉΠ»Π°, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

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

Максимальная Π΄Π»ΠΈΠ½Π° строки зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это:

>>> import sys >>> sys.maxsize 2147483647

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ строк

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ строки осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символа \n :

>>> text = «one\ntwo\nthree» >>> print(text) one two three

ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ строк

>>> s1 = «Hello» + » world» >>> s2 = » world» >>> s1+s2 ‘Hello world’

ΠŸΡ€ΠΈ нСобходимости объСдинСния строки с числом Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ привСсти Ρ‚ΠΎΠΆΠ΅ ΠΊ строкС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ str() :

>>> name = «John» >>> age = 30 >>> «Name: » + name + «, age: » + str(age) ‘Name: John, age: 30’

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк

ΠŸΡ€ΠΈ сравнСнии Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈ ΠΈΡ… рСгистр:

ΠŸΡ€ΠΈ этом ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ символы, Π·Π°Ρ‚Π΅ΠΌ – 2-Π΅ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

>>> s1 = «1a» >>> s2 = «aa» >>> s3 = «Aa» >>> s4 = «ba» >>> «1a» > «aa» # сравнСниС Ρ†ΠΈΡ„Ρ€Ρ‹ с Π±ΡƒΠΊΠ²ΠΎΠΉ False >>> «aa» > «Aa» # сравнСниС рСгистров True >>> «aa» > «ba» # сравнСниС Π±ΡƒΠΊΠ² ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌΡƒ порядку False >>> «aa»

Π”Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ являСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ рСгистра, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ привСсти ΠΎΠ±Π΅ строки ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ рСгистру. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ lower() – для привСдСния ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ ΠΈ upper() – ΠΊ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌΡƒ:

>>> s1 = «Intel» >>> s2 = «intel» >>> s1 == s2 False >>> s1.lower() == s2.lower() True

ΠŸΡƒΡΡ‚Π°Ρ строка Python

ΠžΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ способами:

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку Π² Python

Или ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ пустой строкой:

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу

Для Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ символа ΠΈΠ· строки ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ индСксу, записав Π΅Π³ΠΎ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках:

>>> s = «abcdef» >>> s[0] ‘a’ >>> s[2] ‘c’

ИндСкс начинаСтся с 0

Π’ Python прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈ ΠΏΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ индСксу. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС отсчСт Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅ΡΡ‚ΠΈΡΡŒ ΠΎΡ‚ ΠΊΠΎΠ½Ρ†Π° строки:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк

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

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ %

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² Python ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ встроСнной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ %, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ просто Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π°ΠΌΡ‹ΠΉ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – ΠΊΠΎΠ³Π΄Π° для подстановки Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ½ сам:

>>> name = «Alex» >>> ‘Hello, %s’ % name ‘Hello, Alex’

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

>>> ‘%d %s, %d %s’ % (6, ‘bananas’, 10, ‘lemons’) ‘6 bananas, 10 lemons’

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, зависимо ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… для подстановки ΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² ΠΈΡ‚ΠΎΠ³Π΅, ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Ρ€Π°Π·Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ:

Π’Π°ΠΊΠΎΠΉ способ форматирования строк Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ «ΡΡ‚Π°Ρ€Ρ‹ΠΌ» стилСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Python 3 Π±Ρ‹Π» Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ способы.

str.format()

>>> print(‘<>‘.format(100)) 100 >>> ‘<0>, <1>, <2>‘.format(‘one’, ‘two’, ‘three’) ‘one, two, three’ >>> ‘<2>, <1>, <0>‘.format(‘one’, ‘two’, ‘three’) ‘three, two, one’

💭 Π’ Python 3 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк с использованиСм «Π½ΠΎΠ²ΠΎΠ³ΠΎ стиля» являСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с использованиСм %-стиля, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ прСдоставляСт Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности, Π½Π΅ услоТняя простыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования.

f-строки (Python 3.6+)

Π’ Python вСрсии 3.6 появился Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ форматирования строк – «f-строки», с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС выраТСния Π²Π½ΡƒΡ‚Ρ€ΠΈ строк:

>>> name = ‘Alex’ >>> f’Hello, !’ ‘Hello, Alex!’

Π’Π°ΠΊΠΎΠΉ способ форматирования ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ выраТСния:

>>> a = 5 >>> b = 10 >>> f’Five plus ten is and not <2 * (a + b)>.’ ‘Five plus ten is 15 and not 30.’

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ f-строк Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° format(), Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ΅, быстроС ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠ΅.

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Template Strings

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ прСдусмотрСны ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Рассмотрим ΠΈΡ…:

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ числового ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΊ строкС:

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками

ΠšΡ€ΠΎΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π΅ΡΡ‚ΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

>>> text = «Wikipedia is a Python library that makes it easy to access and parse data from Wikipedia» >>> text.find(«Wikipedia») 0 >>> text.rfind(«Wikipedia») 79 >>> text.replace(«from Wikipedia», «from https://www.wikipedia.org/») ‘Wikipedia is a Python library that makes it easy to access and parse data from https://www.wikipedia.org/’ >>> text.split(» «) [‘Wikipedia’, ‘is’, ‘a’, ‘Python’, ‘library’, ‘that’, ‘makes’, ‘it’, ‘easy’, ‘to’, ‘access’, ‘and’, ‘parse’, ‘data’, ‘from’, ‘Wikipedia’] split_text = text.split(» «) >>> «_».join(split_text) ‘Wikipedia_is_a_Python_library_that_makes_it_easy_to_access_and_parse_data_from_Wikipedia’ >>> text = » test » >>> text.strip() ‘test’ >>> text.lstrip() ‘test ‘ >>> text.rstrip() ‘ test’ >>> text = «Python is a product of the Python Software Foundation» >>> text.lower() ‘python is a product of the python software foundation’ >>> text.upper() ‘PYTHON IS A PRODUCT OF THE PYTHON SOFTWARE FOUNDATION’ >>> text = «python is a product of the python software foundation» >>> text.capitalize() ‘Python is a product of the python software foundation’

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· строки Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ

Π’ ΠŸΠΈΡ‚ΠΎΠ½Π΅ строки ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

string to int

Ѐункция int() ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число Π² дСсятичной систСмС, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΊΠ°ΠΊ строка, Π² Ρ‚ΠΈΠΏ int:

ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ систСму счислСния:

>>> int(«0x12F», base=16) 303

string to list

Π‘Π°ΠΌΡ‹ΠΉ простой способ прСобразования строки Π² список строк – ΠΌΠ΅Ρ‚ΠΎΠ΄ split():

>>> ‘one two three four’.split() [‘one’, ‘two’, ‘three’, ‘four’]

ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ:

>>> ‘one, two, three, four’.split(‘,’) [‘one’, ‘ two’, ‘ three’, ‘ four’]

string to bytes

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строкового Ρ‚ΠΈΠΏΠ° Π² Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ выполняСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ encode() с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ:

string to datetime

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π² Π΄Π°Ρ‚Ρƒ прСобразовываСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ strptime() ΠΈΠ· стандартного модуля datetime:

>>> from datetime import datetime >>> print(datetime.strptime(‘Jan 1 2020 1:33PM’, ‘%b %d %Y %I:%M%p’)) 2020-01-01 13:33:00

string to float

Для прСобразования строки Π² число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стандартная функция float:

string to dict

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ словаря ΠΈΠ· строки Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ json. Для этого ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ json :

string to json

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Python Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ json выполняСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ dumps():

>>> import json >>> json.dumps(«hello») ‘»hello»‘

Best practices

Как Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ строку Π½Π° символы

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ строки Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ символы выполняСтся нСсколькими способами:

>>> text = «django» # Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ 1 >>> list(text) [‘d’, ‘j’, ‘a’, ‘n’, ‘g’, ‘o’] # Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ 2 >>> [c for c in «text»] [‘t’, ‘e’, ‘x’, ‘t’] # Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ 3 >>> for c in text: print(c) d j a n g o

Как ΠΈΠ· строки Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ числа

Для извлСчСния чисСл ΠΈΠ· строки ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ строк:

>>> str = «h3110 23 cat 444.4 rabbit 11 2 dog» >>> [int(s) for s in str.split() if s.isdigit()] [23, 11, 2]

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа. Π‘ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – рСгулярныС выраТСния:

>>> str = «h3110 23 cat 444.4 rabbit 11 2 dog» >>> import re >>> re.findall(r’\d+’, str) [‘3110′, ’23’, ‘444’, ‘4’, ’11’, ‘2’]

Как ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ строку

БущСствуСт нСсколько способов ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ строку, начиная ΠΎΡ‚ классичСского – Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, выбирая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ с ΠΊΠΎΠ½Ρ†Π° ΠΈ вставляя Π΅Π³ΠΎ Π² Π½ΠΎΠ²ΡƒΡŽ строку, ΠΈ заканчивая срСзами – Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠŸΠΈΡ‚ΠΎΠ½Π°.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСза – самый быстрый способ:

ИспользованиС reversed() и str.join() :

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний символ Π² строкС

Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ случаС – Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ послСдний символ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простым ΠΈ быстрым Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ использованиС срСза:

>>> «Some text1″[:-1] ‘Some text’

Как ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ· строки

Π’ случаС удалСния ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² со строки ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

1. ΠžΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ строку Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ с Π½Π΅Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ послСдний ΠΏΡ€ΠΎΠ±Π΅Π», Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ случайно поставит ΠΏΡ€ΠΎΠ±Π΅Π» Π² ΠΊΠΎΠ½Ρ†Π΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ тСкста:

>>> » Some text «.strip() ‘Some text’

2. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ со строки всС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹:

>>> » So me t e x t «.replace(‘ ‘, ») ‘Sometext’

Π Π°Π±ΠΎΡ‚Π° со строками – Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ создания практичСски любого прилоТСния, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ тСкст, ΠΈ язык программирования Python прСдоставляСт ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ тСкста Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку Π² Python. Как пСрСнСсти тСкст Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку – инструкция

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

ΠžΠ±Ρ‰Π°Ρ информация ΠΎ символС Π½ΠΎΠ²ΠΎΠΉ строки

\n – ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСноса ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку ΠΈ закрытия старой строчки Π² Python. Π”Π°Π½Π½Ρ‹ΠΉ символ состоит ΠΈΠ· Π΄Π²ΡƒΡ… элСмСнтов:

Для использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ символа ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ β€œprint(f”Hello\nWorld!”)”, Π·Π° счСт ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² f-строках.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования символа \n для распрСдСлСния массива ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Π½ΠΎΠ²Ρ‹ΠΌ строчкам

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция print

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

Print (β€œHello, World”!”) – β€œHello, World!”\n

ΠŸΡ€ΠΈ этом Ρ‚Π°ΠΊΠΎΠ΅ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ символа прописано Π² Π±Π°Π·ΠΎΠ²Ρ‹Ρ… характСристиках Python. Ѐункция β€œprint” ΠΈΠΌΠ΅Π΅Ρ‚ стандартноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° β€œend” – \n. ИмСнно благодаря Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ этот символ выставляСтся Π² ΠΊΠΎΠ½Ρ†Π΅ строк для пСрСноса Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строчки. Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€œprint”:

print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° β€œend” ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€œprint” равняСтся символу β€œ\n”. По автоматичСскому Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠ½ дополняСт строчки Π½Π° ΠΊΠΎΠ½Ρ†Π΅, ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ прописываСтся функция β€œprint”. ΠŸΡ€ΠΈ использовании ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€œprint” ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡΡƒΡ‚ΡŒ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° экран Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° строка. Однако, Ссли Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… инструкций, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ станСт Π±ΠΎΠ»Π΅Π΅ явным:

print(«Hello, World 1!») print(«Hello, World 2!») print(«Hello, World 3!») print(«Hello, World 4!»)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, прописанного Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

Hello, World 1! Hello, World 2! Hello, World 3! Hello, World 4!

Π—Π°ΠΌΠ΅Π½Π° символа Π½ΠΎΠ²ΠΎΠΉ строки Ρ‡Π΅Ρ€Π΅Π· print

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ β€œprint”, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ строк. Для этого Π² самой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€œend”. ΠŸΡ€ΠΈ этом вмСсто значСния β€œend” Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π». Π—Π° счСт этого ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ символ β€œend”. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΈ установлСнных настройках ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

>>> print(«Hello») >>> print(«World») Hello World

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° послС Π·Π°ΠΌΠ΅Π½Ρ‹ символа β€œ\n” Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»:

>>> print(«Hello», end=» «) >>> print(«World») Hello World

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ способа Π·Π°ΠΌΠ΅Π½Ρ‹ символов для отобраТСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄Π½Ρƒ строчку:

for i in range(15): if i НазначСниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… символов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Python

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ строки Π½Π° подстроки

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ строчку Π½Π° нСсколько подстрочСк, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ split. Если Π½Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΎΠΊ, стандартным Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ являСтся ΠΏΡ€ΠΎΠ±Π΅Π». ПослС выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ тСкст раздСляСтся Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ слова ΠΏΠΎ подстрочкам, прСобразуСтся Π² список strings. Как ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

string = «some new text» strings = string.split() print(strings) [‘some’, ‘new’, ‘text’]

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ провСсти ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ список подстрочСк прСвратится Π² ΠΎΠ΄Π½Ρƒ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ строку, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ join. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками – strip. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ располоТСны с Π΄Π²ΡƒΡ… сторон ΠΎΡ‚ строки.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Python Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с Π½ΠΎΠ²ΠΎΠΉ строки, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ€ΡƒΡŽ строчку символом β€œ\n”. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ информация, стоящая послС Π·Π½Π°ΠΊΠ°, пСрСносится Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку, Π° старая закрываСтся. Однако для пСрСноса Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ символ. Для этого ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ end =””. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€œcharacter” ΠΈ являСтся Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ символом.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ описываСт соглашСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для языка python, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π² состав python.

PEP 8 создан Π½Π° основС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ Π“ΡƒΠΈΠ΄ΠΎ Π²Π°Π½ Россума с добавлСниями ΠΎΡ‚ Π‘Π°Ρ€Ρ€ΠΈ. Если Π³Π΄Π΅-Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π» ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ ΡΡ‚ΠΈΠ»ΡŒ Π“ΡƒΠΈΠ΄ΠΎ. И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, этот PEP ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌ (фактичСски, ΠΎΠ½, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½).

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

Π­Ρ‚ΠΎ руководство ΠΎ согласованности ΠΈ СдинствС. Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ с этим руководством ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Π°. Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅Ρ‰Π΅ Π²Π°ΠΆΠ½Π΅Π΅. А ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” самоС Π²Π°ΠΆΠ½ΠΎΠ΅. Но Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° это руководство Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ. Когда Π²Ρ‹ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅Ρ‚Π΅ΡΡŒ, просто посмотритС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ Ρ€Π΅ΡˆΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΎΠΉ выглядит Π»ΡƒΡ‡ΡˆΠ΅.

Π”Π²Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°:

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

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ΄Π°

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

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

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

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

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

Вабуляция ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹?

Вабуляция Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ΄Π°, написанного с отступами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ табуляции.

Python 3 Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ смСшиваниС табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² отступах.

Python 2 пытаСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ Π² ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.

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

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

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

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

НСкоторыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ строки. Для ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ прСимущСствСнно этой Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ согласию ΠΏΠΎ этому вопросу, Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ строки с 80 Π΄ΠΎ 100 символов (фактичСски увСличивая ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ Π΄ΠΎ 99 символов), ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ всС Π΅Ρ‰Π΅ Π±ΡƒΠ΄ΡƒΡ‚ 72 символа.

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

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

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

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ отступы для пСрСнСсённой строки. ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пСрСнос строки послС логичСского ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ. НапримСр:

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

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

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ класса Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ пустой строкой.

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пустыС строки Π² функциях, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ логичСскиС Ρ€Π°Π·Π΄Π΅Π»Ρ‹.

Python расцСниваСт символ control+L ΠΊΠ°ΠΊ Π½Π΅Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΉ (whitespace), ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Ρ‹Π² страницы β€” Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ логичСскиС части Π² Ρ„Π°ΠΉΠ»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… страницах. Однако, Π½Π΅ всС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ control+L ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π° Π΅Π³ΠΎ мСстС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ символ.

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° исходного Ρ„Π°ΠΉΠ»Π°

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Python Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ UTF-8 (ASCII Π² Python 2).

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

Начиная с вСрсии python 3.0 Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ дСйствуСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ соглашСниС: всС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ обязаны ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ASCII символы, ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ английскиС слова Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сокращСния ΠΈΠ»ΠΈ нСанглийскиС тСхничСскиС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, строки ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ лишь ASCII символы. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚: (Π°) test case, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π΅-ASCII особСнности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ (Π±) ΠΈΠΌΠ΅Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΎΠ². Авторы, Ρ‡ΡŒΠΈ ΠΈΠΌΠ΅Π½Π° основаны Π½Π΅ Π½Π° латинском Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои ΠΈΠΌΠ΅Π½Π° Π² Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Ρƒ.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ для ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это соглашСниС.

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

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС.

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

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

Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ сгруппированы Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС:

ВставляйтС ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ².

Π£ΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ спСцификации __all__ послС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ².

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

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

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

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

Когда Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ класс ΠΈΠ· модуля, Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Если Ρ‚Π°ΠΊΠΎΠ΅ написаниС Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΠ΅Π½, Ρ‚ΠΎΠ³Π΄Π° ΠΏΠΈΡˆΠΈΡ‚Π΅:

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

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

ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² выраТСниях ΠΈ инструкциях

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ситуациях:

НСпосрСдствСнно Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ…, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок.

НСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ запятой, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой ΠΈΠ»ΠΈ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ:

Π‘Ρ€Π°Π·Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкой, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ начинаСтся список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π‘Ρ€Π°Π·Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкой, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт индСкс ΠΈΠ»ΠΈ срСз:

ИспользованиС Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания (ΠΈΠ»ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ) для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ:

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² с самым Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свои собствСнныС суТдСния, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°, ΠΈ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΏΠΎ ΠΎΠ±Π΅ стороны Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ Π·Π½Π°ΠΊΠ° =, Ссли ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обозначСния ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ составныС инструкции (нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС).

Иногда ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»ΠΎΠ² while, for ΠΈΠ»ΠΈ Π²Π΅Ρ‚ΠΊΡƒ if Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ссли ΠΊΠΎΠΌΠ°Π½Π΄Π° короткая, Π½ΠΎ Ссли ΠΊΠΎΠΌΠ°Π½Π΄ нСсколько, Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρ‚Π°ΠΊ Π½Π΅ ΠΏΠΈΡˆΠΈΡ‚Π΅. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк!

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

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰ΠΈΠ΅ ΠΊΠΎΠ΄Ρƒ, Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ отсутствиС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². ВсСгда исправляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ссли мСняСтС ΠΊΠΎΠ΄!

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ прСдлоТСниями. Если ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ β€” Ρ„Ρ€Π°Π·Π° ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ написано с большой Π±ΡƒΠΊΠ²Ρ‹, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π½Π΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, которая начинаСтся с малСнькой Π±ΡƒΠΊΠ²Ρ‹ (Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ измСняйтС рСгистр ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ!).

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

Π‘Ρ‚Π°Π²ΡŒΡ‚Π΅ Π΄Π²Π° ΠΏΡ€ΠΎΠ±Π΅Π»Π° послС Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ прСдлоТСния.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ говорят Π½Π° английском языкС, поТалуйста, ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π° английском, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π½Π° 120%, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ люди, Π½Π΅ Π·Π½Π°ΡŽΡ‰ΠΈΠ΅ вашСго Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка.

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

Π‘Π»ΠΎΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΊΠΎΠ΄ (вСсь, ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ), ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ послС Π±Π»ΠΎΠΊΠ°, ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ отступ, Ρ‡Ρ‚ΠΎ ΠΈ сам ΠΊΠΎΠ΄. КаТдая строчка Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с символа # ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° послС Π½Π΅Π³ΠΎ (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сам тСкст коммСнтария Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ отступа).

Абзацы Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ строкой, состоящСй ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа #.

«Π’строчныС» ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ€Π΅ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ находится Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ρ‡Ρ‚ΠΎ ΠΈ инструкция. «Π’строчныС» ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ двумя ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΎΡ‚ инструкции. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с символа # ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² строкС с ΠΊΠΎΠ΄ΠΎΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ ΠΎΡ‚ чтСния, Ссли ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ΅. НС ΠΏΠΈΡˆΠΈΡ‚Π΅ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹:

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

ΠŸΠΈΡˆΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для всСх ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ для ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ послС строки с def.

PEP 257 ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ стояли Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС. А Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅, Ссли ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΈ пустая строка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Для однострочной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Subversion, CVS ΠΈΠ»ΠΈ RCS Π² Π²Π°ΡˆΠΈΡ… исходных ΠΊΠΎΠ΄Π°Ρ…, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ВставляйтС эти строки послС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ модуля ΠΏΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ отдСляйтС ΠΈΡ… пустыми строками ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎ ΠΈ послС.

БоглашСния по имСнованию

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

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

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

ОписаниС: Π‘Ρ‚ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½

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

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

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

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ X11 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прСфикс Π₯ для всСх public-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ python этот ΡΡ‚ΠΈΠ»ΡŒ считаСтся излишним, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ полями ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² стоит имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ стоит имя модуля.

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

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

single_trailing_underscore_: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ соглашСнию для избСТания ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами языка python, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

__double_leading_underscore: измСняСт имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° класса, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² классС FooBar ΠΏΠΎΠ»Π΅ __boo становится _FooBar__boo.

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

ΠŸΡ€Π΅Π΄ΠΏΠΈΡΠ°Π½ΠΈΡ: соглашСния ΠΏΠΎ имСнованию

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

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

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡˆΡ€ΠΈΡ„Ρ‚Π°Ρ… эти символы Π½Π΅ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌΡ‹ ΠΎΡ‚ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΈ нуля. Если ΠΎΡ‡Π΅Π½ΡŒ Π½ΡƒΠΆΠ½ΠΎ l, ΠΏΠΈΡˆΠΈΡ‚Π΅ вмСсто Π½Π΅Ρ‘ Π·Π°Π³Π»Π°Π²Π½ΡƒΡŽ L.

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

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

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊ рСгистру символов ΠΈ ΠΎΠ±Ρ€Π΅Π·Π°ΡŽΡ‚ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ достаточно ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ β€” это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Unix, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ΄ окаТСтся нСпСрСносимым Π² старыС вСрсии Windows, Mac, ΠΈΠ»ΠΈ DOS.

Когда ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, написанный Π½Π° Π‘ ΠΈΠ»ΠΈ C++, ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ python-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (содСрТащий интСрфСйс высокого уровня), Π‘/Π‘++ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ начинаСтся с символа подчСркивания, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, _socket.

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

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

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

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

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡŽΡ‚ΡΡ классами, ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ примСняСтся ΡΡ‚ΠΈΠ»ΡŒ имСнования классов. Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Error Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠΌΠ΅Π½ΠΈ (Ссли, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ являСтся ошибкой).

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

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

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

ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

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

Π‘Ρ‚ΠΈΠ»ΡŒ mixedCase допускаСтся Π² Ρ‚Π΅Ρ… мСстах, Π³Π΄Π΅ ΡƒΠΆΠ΅ ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΡΡ‚ΠΈΠ»ΡŒ, для сохранСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости.

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

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

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

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

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

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

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

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

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

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

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

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ модуля ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, Π° слова Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ символами подчСркивания. НапримСр: MAX_OVERFLOW, TOTAL.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ наслСдования

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

ΠœΡ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π² python Ρ‚Π°ΠΊΠΈΡ… Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ сформулируСм Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ:

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠΌΠ΅Π½ΠΈ символа подчСркивания.

Если имя ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом языка, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΠ½Π΅Ρ† ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ΄ΠΈΠ½ символ подчСркивания. Π­Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Π΅ΠΌ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ искаТСниС написания (ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρƒ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΅ΡΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ класс, ΠΈ особСнно ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса (class method) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ имя cls).

НазовитС простыС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ понятными ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ Π½Π΅ ΠΏΠΈΡˆΠΈΡ‚Π΅ слоТныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа ΠΈ измСнСния (accessor/mutator, get/set, β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².) ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² python ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌ, Ссли потрСбуСтся. Π’ этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойства (properties), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π·Π° синтаксисом доступа ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1: Бвойства (properties) Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² классах Π½ΠΎΠ²ΠΎΠ³ΠΎ стиля (Π² Python 3 всС классы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ).

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

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

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1: Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹: Ссли подкласс Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ имя класса ΠΈ имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Ρ‚ΠΎ вновь Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΠ΅Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2: ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ измСнСния ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с __getattr__(), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ Π»Π΅Π³ΠΊΠΎ рСализуСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 3: НС всСм нравится этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, поэтому ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ компромисса ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠΌΠ΅Π½ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ доступа ΠΊ этим Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ.

ΠžΠ±Ρ‰ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

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

НапримСр, Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² CPython ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк Π² выраТСниях Ρ‚ΠΈΠΏΠ° a+=b ΠΈΠ»ΠΈ a=a+b. Π’Π°ΠΊΠΈΠ΅ инструкции Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π² Jython. Π’ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния частях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ».join() β€” Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ склСиваниС строк Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя нСзависимо ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ python.

БравнСния с None Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² is ΠΈΠ»ΠΈ is not, Π° Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ ΠΏΠΈΡˆΠΈΡ‚Π΅ if x, Ссли ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ if x is not None β€” Ссли, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΠΈ тСстировании такая пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ None, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ False!

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сравнСния, Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС 6 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния (__eq__, __ne__, __lt__, __le__, __gt__, __ge__), Ρ‡Π΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ программисты Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π²ΠΈΠ΄ сравнСния.

Для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ усилий ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ functools.total_ordering() для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

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

НаслСдуйтС свой класс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ Exception, Π° Π½Π΅ ΠΎΡ‚ BaseException. ΠŸΡ€ΡΠΌΠΎΠ΅ наслСдованиС ΠΎΡ‚ BaseException Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ слСдуСт ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’ Python 3, «raise X from Y» слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для указания явной Π·Π°ΠΌΠ΅Π½Ρ‹ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Когда Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ замСняСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (использованиС «raise X» Π² Python 2 ΠΈΠ»ΠΈ «raise X from None» Π² Python 3.3+), прослСдитС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ информация ΠΏΠ΅Ρ€Π΅Π΄Π°Π»Π°ΡΡŒ Π² Π½ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ сохранСниС ΠΈΠΌΠ΅Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ KeyError Π² AttributeError ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ тСкста исходного ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π½ΠΎΠ²ΠΎΠΌ).

Когда Π²Ρ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΏΠΈΡˆΠΈΡ‚Π΅ raise ValueError(‘message’) вмСсто старого синтаксиса raise ValueError, message.

Бтарая Ρ„ΠΎΡ€ΠΌΠ° записи Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° Π² python 3.

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

Когда ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ошибки вмСсто простого выраТСния except:.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΠΈΡˆΠΈΡ‚Π΅ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ написаниС «except:» Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ ΠΈ SystemExit, ΠΈ KeyboardInterrupt, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слоТнСС Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ control+C. Если Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ всС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΏΠΈΡˆΠΈΡ‚Π΅ «except Exception:».

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ являСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ использования «except:», ΠΊΡ€ΠΎΠΌΠ΅ Π΄Π²ΡƒΡ… случаСв:

ΠŸΡ€ΠΈ связывании ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ явный синтаксис привязки, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² Python 2.6:

Π­Ρ‚ΠΎ СдинствСнный синтаксис, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π² Python 3, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ нСоднозначности, связанных с Π±ΠΎΠ»Π΅Π΅ старым синтаксисом Π½Π° основС запятой.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π΅ ошибок ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ²Π½ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π² Python 3.3, вмСсто Π°Π½Π°Π»ΠΈΠ·Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ errno.

ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ try. except ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ошибки. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, это позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ замаскированных ошибок.

Когда рСсурс являСтся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π° участкС ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ with для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ послС выполнСния ΠΎΠ½ Π±Ρ‹Π» ΠΎΡ‡ΠΈΡ‰Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎ.

ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ контСкста слСдуСт Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ освобоТдСниС рСсурсов. НапримСр:

ПослСдний ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ Π΄Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ __enter__ ΠΈ __exit__ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ закрытия соСдинСния послС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π‘Ρ‹Ρ‚ΡŒ явным Π²Π°ΠΆΠ½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строковыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ вмСсто модуля string β€” ΠΎΠ½ΠΈ всСгда быстрСС ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ API для unicode-строк. МоТно ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ этого ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с вСрсиями python младшС 2.0.

Π’ Python 3 ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строковыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

ΠŸΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ».startswith() ΠΈ ».endswith() вмСсто ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ срСзов строк для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ суффиксов ΠΈΠ»ΠΈ прСфиксов.

startswith() ΠΈ endswith() выглядят Ρ‡ΠΈΡ‰Π΅ ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ мСньшС ошибок. НапримСр:

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ isinstance(), Π° Π½Π΅ прямым сравнСниСм Ρ‚ΠΈΠΏΠΎΠ²:

Когда Π²Ρ‹ провСряСтС, являСтся Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строкой, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ строка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ unicode-строкой. Π’ python 2 Ρƒ str ΠΈ unicode Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Python 3, unicode ΠΈ basestring большС Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ (Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ str) ΠΈ bytes большС Π½Π΅ являСтся своСго Ρ€ΠΎΠ΄Π° строкой (это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… чисСл).

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

НС ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ строковыми константами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² ΠΊΠΎΠ½Ρ†Π΅ β€” ΠΎΠ½ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹, Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ (Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈ reindent.py) ΠΎΠ±Ρ€Π΅Π·Π°ΡŽΡ‚ ΠΈΡ….

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

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