Как вывСсти имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python

3 способа ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π½Π° имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Python

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ строку Python Π² имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с нСсколькими способами, ΠΊΠ°ΠΊ функция exec (), Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ local () ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π³Π»ΠΎΠ±Π°Π»ΠΎΠ² ().

ВступлСниС

ΠœΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚Π΅ΠΌΠ°Ρ… Π² Python. Но, Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ строку Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ этом руководствС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° этой Ρ‚Π΅ΠΌΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для прСобразования строки Python Π½Π° имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ динамичСскиС ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ присваивая ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ нСсколько способов прСобразования строки Π½Π° имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠœΡ‹ обсудим всС ΠΈΠ· Π½ΠΈΡ… Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠœΡ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ строку Π² ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с нСсколькими способами, ΠΊΠ°ΠΊ функция Exec (), Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Local () ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π³Π»ΠΎΠ±Π°Π»ΠΎΠ² ().

НСсколько способов с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ для прСобразования строки Python Π² ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ обсудим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описанными.

1. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° EXEC () Π² Python для прСобразования строки Python Π² ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ EXEC () ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ динамичСски Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Python.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ пСрСмСнная, названная Π½Π°ΠΌΠΈ ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строкой. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ EXEC () Бпособ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ посмотрим с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, объяснСнной Π½ΠΈΠΆΠ΅:

2. ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Locals () для прСобразования строки Python Π² ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Ѐункция Locals () Π² Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° словаря Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ локальной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° символов доступна с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ local (). Π­Ρ‚Π° функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ функция Π³Π»ΠΎΠ±Π°Π» (). ЕдинствСнная Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ мСстных ΠΆΠΈΡ‚Π΅Π»Π΅ΠΉ (). Доступ ΠΊ локальной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ символов ΠΈ Π³Π»ΠΎΠ±Π°Π» () Доступ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… символов, ΠΈ ΠΎΠ±Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ.

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

3. ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Globals () для прСобразования строки Python Π² ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Ѐункция Globals () ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° словаря Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° символов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния всСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, связанной с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ объСмом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Доступ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π³Π»ΠΎΠ±Π°Π»Π΅ΠΉ ().

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΊΠ°ΠΊ строку. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π» ΠΊΠ°ΠΊ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, помСстив Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НаконСц, ΠΌΡ‹ распСчатаСм Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ строку ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ строку Π² ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы создания Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Python

Господин

Π”ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ

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

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ прСобразования строки Π½Π° имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠœΡ‹ обсудили всС ΠΏΡƒΡ‚ΠΈ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ВсС способы ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ подходящиС для вас ΠΈ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Однако, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ сомнСния ΠΈΠ»ΠΈ вопросы, Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΒ» Π½ΠΈΠΆΠ΅. Π― ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС.

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Python

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” ваТная Ρ‡Π°ΡΡ‚ΡŒ любого языка программирования. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½ΠΎ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΡ… Π½Π° Ρ‚ΠΈΠΏΡ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ. Π’ Python ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡŽΡ‚ΡΡ концСпциям, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ особСнности, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏ явно Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ присвоСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Python 3 отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования. Π•Ρ‘ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‘ Ρ‚ΠΈΠΏ, ΠΎΠ½Π° создаСтся Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ присваивания значСния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ равСнства Β«=Β». Π‘Π»Π΅Π²Π° ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΈΡˆΡƒΡ‚ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, Π° справа β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ДинамичСская типизация

Π’Π°ΠΊΠΎΠ΅ созданиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ благодаря динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ присваиваниС ΠΈ ΠΎΠ±ΠΌΠ΅Π½ значСниями

Python позволяСт программисту ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нСскольким ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования Python позволяСт ΠΎΠ±ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… β€”

Вакая опСрация Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ значСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… мСстами.

ИмСна

Π’ ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Python 3 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Ρ‹, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ символы подчСркивания. Π¦ΠΈΡ„Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² любой части ΠΈΠΌΠ΅Π½ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Π½Π°Ρ‡Π°Π»Π°.

И Ссли синтаксис Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π½Π° программиста ΠΌΠ°Π»ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ IT сообщСство Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Β«Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ…Β» ΠΈΠΌΡ‘Π½ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

Для создания Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΈΠΌΡ‘Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° (ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова)

Π’Ρ‹Π²ΠΎΠ΄ Π² консоль

Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π° экран, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ print(). Π‘ Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π΅. Π•ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² синтаксиса Π²Ρ‹Π²ΠΎΠ΄Π°:

ΠŸΡƒΡΡ‚Π°Ρ пСрСмСнная

None ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² случаях, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Π½Π΅ сущСствуСт. И хотя ΠΎΠ½ Π½Π΅ эквивалСнтСн ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠ° bool, строкС ΠΈΠ»ΠΈ числу, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

ΠŸΡ€ΠΈ нСобходимости, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ…Ρ€Π°Π½ΠΈΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Ρ„Π°ΠΉΠ». И ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ этот Ρ„Π°ΠΉΠ» Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ, Ρ‚ΠΎ присваиваСм ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ None. Π’ дальнСйшСм ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ записью ΠΈΠ»ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, являСтся Π»ΠΈ пСрСмСнная пустой.

ΠžΠ±Π»Π°ΡΡ‚ΠΈ видимости

Π’ Python Π΅ΡΡ‚ΡŒ глобальная ΠΈ локальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π½Ρ‹Ρ… областях видимости ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ пСрСсСчСния ΠΈΠΌΡ‘Π½, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ программисту Π½ΠΎΠ²Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ взаимодСйствий ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ бСзопасным, дСлая Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ нСсанкционированный доступ ΠΊ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости β€” это Ρ‚Π΅Π»ΠΎ исполняСмого скрипта. К любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, объявлСнной Π² Π½Π΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΠ· любой части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π°ΠΆΠ΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ модуля.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово global, ΠΎΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽΡΡ Π² глобальной области видимости. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли функция Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π² своём Ρ‚Π΅Π»Π΅ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΎΠ½Π° автоматичСски ΠΈΡ‰Π΅Ρ‚ Π΅Ρ‘ Π² глобальной области видимости скрипта ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚.

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

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅

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

Python Π΄Π°Ρ‘Ρ‚ программисту всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΎΠ½ прСдоставляСт ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±ΠΌΠ΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

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

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

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Python 3

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ – ΠΎΡ‡Π΅Π½ΡŒ ваТная ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹; ΠΏΠΎ сути, это символ (ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ символов), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто этого значСния ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π”Π°Π½Π½ΠΎΠ΅ руководство ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас с основами Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² Python 3.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пСрСмСнная?

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ ярлык с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ привязан ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число 103204934813. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ придётся постоянно Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ число. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ число Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ my_int:

По сути, my_int – это ярлык, привязанный ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ 103204934813.

Π€Ρ€Π°Π·Π° my_int = 103204934813 – это опСрация присваивания, которая состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частСй:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, присваивая Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ имя, Π²Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, ΠΈΠ»ΠΈ создаётС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ вмСсто значСния. Π’ Python, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, объявив, Ρ‡Ρ‚ΠΎ my_int Ρ€Π°Π²Π½ΠΎ 103204934813, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ my_int вмСсто числа. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ:

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ быстро Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ вычислСния. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π½ΡΡ‚ΡŒ 813 ΠΈΠ· my_int:

Π’ качСствС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ матСматичСского уравнСния. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π° числа ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡ… суммы Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x:

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

Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x:

Python Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 221, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ это число получаСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ слоТСния 76 ΠΈ 145.

Π’ Π²ΠΈΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ любой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа.

my_string = ‘Hello, World!’
my_flt = 45.06
my_bool = 5 > 9 #логичСский ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ истинноС ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ΅
my_list = [‘item_1’, ‘item_2’, ‘item_3’, ‘item_4’] my_tuple = (‘one’, ‘two’, ‘three’)
my_dict =

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. На экранС появится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

my_list = [‘item_1’, ‘item_2’, ‘item_3’, ‘item_4’] print(my_list)
[‘item_1’, ‘item_2’, ‘item_3’, ‘item_4’]

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ выдСляСт Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€Π°Π²ΠΈΠ»Π° задания ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

БущСствуСт ряд ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

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

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

my_intmy-intint44intMY_INT$MY_INTanother_intanother int

Выбирая имя для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, слСдуСт Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ рСгистр: my_int, MY_INT, My_Int ΠΈ mY_iNt – Π½Π΅ ΠΎΠ΄Π½Π°, Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ΠΈΠΌΡ‘Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

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

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

my_intmyIntint4Int4my_first_stringmyFirstString

Но самоС Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ – это Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Если ΡƒΠΆ Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, написанныС Π² Π²Π΅Ρ€Π±Π»ΡŽΠΆΡŒΠ΅ΠΌ стилС, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этому ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅: PEP 8 – ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Π½ΡƒΠ°Π» ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² Python

ΠŸΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· самого понятия) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСназначСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Π°: это позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ значСния Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€Π΅ΠΆΠ½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚.ΠΏ.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x число, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ строку:

x = 76
print(x)
x = «8host»
print(x)
76
8host

Если Π±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° написана Ρ‚Π°ΠΊ:

x = 76
x = «8host»
print(x)

Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π° экранС появилось Π±Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ присвоСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это послСднСС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ присваиваниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Python позволяСт ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нСскольким ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΈΡ….

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ x, y ΠΈ z Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0.

x = y = z = 0
print(x)
print(y)
print(z)
0
0
0

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

Python Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ нСскольким ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ строки. НапримСр:

j, k, l = «8host», 1.05, 16
print(j)
print(k)
print(l)
8host
1.05
16

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ j Π±Ρ‹Π»ΠΎ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 8host, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ k 1.05, l – 16.

Π­Ρ‚Π° функция позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΈ ΠΏΡ€ΠΈ этом ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΡ€ΠΈ использовании ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ Π΅Ρ‘ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ – это контСкст, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° доступна Π² ΠΊΠΎΠ΄Π΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НС всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ доступны ΠΈΠ· всСх частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ – Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ доступны Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

РассмотритС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

#Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
glb_var = «global»
#ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
def var_function():
lcl_var = «local» #Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
print(lcl_var)
#Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
var_function()
#Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
print(glb_var)
local
global

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрСмСнная glb_var являСтся глобальной, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Ρ‘ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ var_function(). ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это:

glb_var = «global»
def var_function():
lcl_var = «local»
print(lcl_var)
print(glb_var) #Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ glb_var Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
var_function()
print(glb_var)
local
global
global

Π’Π΅ΠΏΠ΅Ρ€ΡŒ пСрСмСнная glb_var выводится Π΄Π²Π°ΠΆΠ΄Ρ‹: Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

glb_var = «global»
def var_function():
lcl_var = «local»
print(lcl_var)
print(lcl_var)
NameError: name ‘lcl_var’ is not defined

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Рассмотрим Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π—Π°Π΄Π°ΠΉΡ‚Π΅ глобальной ΠΈ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ имя:

num1 = 5 #Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная
def my_function():
num1 = 10 #Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, num1
num2 = 7 #Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная
print(num1) #Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ num1
print(num2) #Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ num2
#Π’Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ my_function()
my_function()
#Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ num1
print(num1)
10
7
5

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ локальная пСрСмСнная num1 присвоСна Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ num1 появляСтся 10. ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ num1 (послС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ my_function()) появляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ global позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Python Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

def new_blog():
global blog = «8host» #ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
#Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ blog
print(blog)

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ пСрСмСнная blog Π±Ρ‹Π»Π° присвоСна локально Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ new_blog(), ΠΎΠ½Π° доступна Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ благодаря ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ global. ΠŸΠΎΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ print(blog) Python Π½Π΅ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ: пСрСмСнная сущСствуСт ΠΈ Π²Π½Π΅, ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ услоТняСт ΠΊΠΎΠ΄.

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

Работая с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, Π²Π°ΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… большС подходят этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅: Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅; Π½ΠΎ Ссли ΠΎΠ΄Π½Π° пСрСмСнная ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… функциях, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ локально.

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

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ строки

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΡ‚ΠΎΠΊ обсуТдаСт, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ строки Π² Python: Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ строки?

Как я ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ? Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Python Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ __name__ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли Ρƒ мСня Π΅ΡΡ‚ΡŒ пСрСмСнная, такая ΠΊΠ°ΠΊ:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ python-varname ΠΏΠ°ΠΊΠ΅Ρ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’ вашСм случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ:

Π― Π°Π²Ρ‚ΠΎΡ€ этого ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы, ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ вопросы Π½Π° GitHub.

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

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

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

МоС объяснСниС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слишком многословным (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠ½Π΅ слСдовало Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мСньшС слов «foo»), Π½ΠΎ Π²ΠΎΡ‚ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ ( ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ссли Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ присвоСно ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π° ΠΈΠ· этих ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ):

Если Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅:

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ здСсь: ideone

Π’ Python 3.8 ΠΌΠΎΠΆΠ½ΠΎ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ f-строки:

На python3 эта функция ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ самоС внСшнСС имя Π² стСкС:

Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² любом мСстС ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΎΠΉΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ стСк Π² поисках ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ совпадСния.

Π― Π½Π΅ Π²Π΅Ρ€ΡŽ, Ρ‡Ρ‚ΠΎ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’ΠΎΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Π― Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π±Ρ‹ это для Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ довольно Ρ…Ρ€ΡƒΠΏΠΊΠΈΠΌ. Но это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сдСлано.

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° самого исходного ΠΊΠΎΠ΄Π° Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ поиск с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ locals() ΠΈΠ»ΠΈ, globals() ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ послСдний ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Π°ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹.

Π’ любом случаС, Π²ΠΎΡ‚ ΠΊΠΎΠ΄:

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ нСдостатком этого Π²ΠΈΠ΄Π° ΠΌΠ°Π³ΠΈΠΈ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚ прСдполоТСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ структурирован исходный ΠΊΠΎΠ΄. И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅, Ссли ΠΎΠ½ запускаСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.

Π― написал ΠΏΠ°ΠΊΠ΅Ρ‚ Π²ΠΎΠ»ΡˆΠ΅Π±ΡΡ‚Π²Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ магию Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°. Π’Ρ‹ моТСшь Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ это конструктору dataframe. Π­Ρ‚ΠΎ эквивалСнтно:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ…, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Если Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ id (), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΠΈ пСрСмСнная Π½Π° Ρ‚ΠΎ ΠΆΠ΅ мСсто Π² памяти.

Python Π½Π΅ сохраняСт имя Π² Π»Π΅Π²ΠΎΠΉ части назначСния Π² Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ:

ΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ просто ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ звонящСго ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) список ΠΈΠΌΠ΅Π½. Если Π²Π²ΠΎΠ΄ ‘. ‘,’. ‘ слишком Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΎΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ΄Π½Ρƒ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ список ΠΈΠΌΠ΅Π½ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ (ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, namedtuple Π΄Π΅Π»Π°Π΅Ρ‚).

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

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Python

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ β€” это имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ Π΄Π°Π»ΠΈ имя области, появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ хранятся.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π΄Π°Π½Π½Ρ‹Ρ… Π² Python являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΠ»ΠΈ класса. Когда, Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, появляСтся Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ выдСляСт для Π½Π΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (число, строка ΠΈ Ρ‚.Π΄.). ПослС этого Python записываСт Π² свой Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ список адрСс этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Но ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ созданному ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ? 🤷‍♀️

Для этого ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠΌΠ΅Π½Π° вмСсто адрСсов.

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами пСрСмСнная Π² Python β€” это просто имя, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½ΠΎΠ΅ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ

a = 123 print(a) > 123 print(type(a)) print(id(a)) 1827204944

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

ΠžΡ‚Π²Π΅Ρ‚: ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ. Π‘Π΄Π΅Π»Π°Π² это, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ находится Π² Π±ΡƒΡ‚Ρ‹Π»ΠΊΠ°Ρ…, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, смоТСтС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с Π½ΠΈΠΌΠΈ дальнСйшиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ†Π΅Π½Ρƒ, ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ссылки

Для понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ присваиваСтС Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’Π°ΠΆΠ½ΠΎ : пСрСмСнная Π² Python Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ β€” ΠΎΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ лишь ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½ΠΎΠΉ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

b = a print(id(a)) > 1827204576 print(id(b)) > 1827204576

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b :

b = 500 print(id(a)) > 1827204576 print(id(b)) > 56754272

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Python создал Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° int, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ пСрСмСнная b ссылаСтся Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

b = «tree» print(id(b)) > 54134048

b = «tree», пСрСмСнная b Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ссылаСтся Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строкового Ρ‚ΠΈΠΏΠ°

На ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° int со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 500 большС Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ссылаСтся. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½ большС Π½Π΅ доступСн ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ сборщиком мусора (Ρ‚Π΅ΠΌ самым освободим Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ памяти).

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Object Identity)

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” это адрСс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² памяти.

a = b = 1 print(id(a)) > 1593636784 print(id(b)) > 1593636784 print(id(1)) > 1593636784

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ здСсь всСго ΠΎΠ΄ΠΈΠ½. А a ΠΈ b β€” ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π½Π°Π·Π²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° Π½Π΅Π³ΠΎ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ равСнство ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° is :

Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ

ИмСнованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

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

Π­Ρ‚ΠΎ Тёсткий Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π·Π°ΠΊΠΎΠ½ языка, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ свод Π±ΠΎΠ»Π΅Π΅ мягких, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ», ΠΈ ΠΎΠ½ΠΈ говорят Π½Π°ΠΌ:

Как вывСсти имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python

Бписок Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ языкС Π΅ΡΡ‚ΡŒ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ слова. Π’Π°ΠΊΠΈΠ΅ слова ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ поэтому Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ для использования Π² качСствС ΠΈΠΌΡ‘Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ список Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов для Python:

False, class, finally, is, return, None, continue, for, lambda, try, True, def, from, nonlocal, whileand, del, global, not, with, as, elif, if, or, yield, assert, else, import, pass, break, except, in, raise.

Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

Π’ ΠŸΠΈΡ‚ΠΎΠ½Π΅ Π½Π΅ трСбуСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ присваивания значСния, объявлСниС происходит автоматичСски. А присваиваниС выглядит Ρ‚Π°ΠΊ:

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Python

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ:

# Ρ„Π°ΠΉΠ» main.py space_ship = ‘Millenium Falcon’ # Ρ„Π°ΠΉΠ» second.py from main import space_ship print(space_ship) > Millenium Falcon

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ пСрСмСнная (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ cat ), ΠΈΡ‰Π΅ΠΌ вхоТдСния строки с Π΅Ρ‘ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π² словарях, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… функциями locals() (локальная Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ) ΠΈ globals() (глобальная Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ):

if «cat» in locals(): # … if «cat» in globals(): # …

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ удаляСтся, Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Ρ‘ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π²ΠΎ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ del() :

please_dont = ‘alive’ del(please_dont) print(please_dont) > Traceback (most recent call last): print(please_dont) NameError: name ‘please_dont’ is not defined

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ?

Π‘ΠΈΠΌΠ²ΠΎΠ» * ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ нСсколько Π²Π΅Ρ‰Π΅ΠΉ.

status = [‘open’, ‘close’] print(status) > [‘open’, ‘close’] print(*status) > open close

def summer(*terms): sum = 0 for term in terms: sum = sum + term return sum print(summer(2)) > 2 print(summer(3, 3)) > 6 print(summer(4, 43, 1)) > 48

def setCreator(some_list): return <*some_list[1:]>weapons = [‘bow’, ‘pike’, ‘sword’, ‘dagger’] print(setCreator(weapons)) > <'dagger', 'pike', 'sword'>print(type(setCreator(weapons))) >

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости: Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π‘Π½Π°Ρ‡Π°Π»Π° тСрминология. ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΈΠ»ΠΈ пространство ΠΈΠΌΠ΅Π½ β€” это мСсто Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Ρ‹Π»ΠΎ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ области видимости:

2 НСлокальная. Если Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° другая функция, Ρ‚ΠΎ пСрСмСнная Π²Π½ΡƒΡ‚Ρ€ΠΈ внСшнСго def Π±ΡƒΠ΄Π΅Ρ‚ нСлокальной для def Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ Π½Π΅ получится:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово nonlocal :

num = 42 def globalExample(n): res = n + num return res print(globalExample(1)) > 43

БтатичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

БтатичСская пСрСмСнная сохраняСт своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Ρ‚ΠΎΠΌ-Ρ‚ΠΎ ΠΈ Π΄Π΅Π»ΠΎ, Ρ‡Ρ‚ΠΎ статичСская пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ локальной.

Π‘Π°ΠΌΠΈΡ… ΠΏΠΎ сСбС статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ Π½Π΅Ρ‚

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

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

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