ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ функциях, ΠΈΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ…, инструкциях def, return ΠΈ lambda, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, функциях с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ числом Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π˜ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, инструкция def

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ return Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ нашСм случаС функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сумму x ΠΈ y.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΅Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ:

Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой слоТности ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (списки, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΈ Π΄Π°ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ!):

Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ инструкциСй return, ΠΏΡ€ΠΈ этом функция Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ None:

АргумСнты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΡ… вовсС. Π’Π°ΠΊΠΆΠ΅ распространСны Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ числом Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Ѐункция Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ количСство ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚ΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ставится *:

Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ число ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚ΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ставится **:

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ kwargs Ρƒ нас хранится ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹, ΠΎΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ заблагорассудится.

АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, инструкция lambda

АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ лишь ΠΎΠ΄Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ быстрСС. АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции lambda. ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΈΡ… Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π»ΠΈ ΠΌΡ‹ инструкциСй def func():

lambda Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ, Π½Π΅ трСбуСтся инструкция return, Π° Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ, Π²Π΅Π΄Π΅Ρ‚ сСбя Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅:

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

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

Поиск

НовоС Π½Π° сайтС

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python

Ѐункция это Π±Π»ΠΎΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выполнСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ задания. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Python.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python:

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

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

АргумСнты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python

Вызывая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

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

АргумСнты, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

АргумСнт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, это Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ создании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

АргумСнты ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹

Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΎΠ΅ количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ этом случаС слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Они Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ставится Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° (*).

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово return

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ return ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ послС выраТСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ return Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² это Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ return None. БоотвСтствСнно, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

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

НСкоторыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ скрипта ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ областям ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ВсС зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ Π²Ρ‹ объявили эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Π’ Python Π΄Π²Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… области видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, Ρ‚Π΅ Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π²Π½Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ доступ ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ доступ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

РСкурсия

РСкурсиСй Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ называСтся ситуация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ функция Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ саму сСбя. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ рСкурсии ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ функция вычислСния Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π° числа.

Напомним, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠΌ числа, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 5 являСтся ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ всСх Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… (Ρ†Π΅Π»Ρ‹Ρ…) чисСл ΠΎΡ‚ 1 Π΄ΠΎ 5. Π’ΠΎ Π΅ΡΡ‚ΡŒ, 1 * 2 * 3 * 4 * 5

РСкурсивная функция вычислСния Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π° Π½Π° языкС Python Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π Π΅Ρ†Π΅ΠΏΡ‚ создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python

Как Π²ΠΈΠ΄Π½ΠΎ, ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ help() с ΠΈΠΌΠ΅Π½Π΅ΠΌ нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π°ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΠΉΡ‚Π΅ ваши Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ качСствСнной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ программисты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с вашим ΠΊΠΎΠ΄ΠΎΠΌ послС вас Π±ΡƒΠ΄ΡƒΡ‚ Π²Π°ΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python – руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Python позволяСт Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° основныС ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, извСстныС ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция Π² Python?

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python – это ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ нСобходимости.

Ѐункция содСрТит Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² <>. Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Python.

Ѐункция ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ программисту Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ части. Она ΠΎΡ‡Π΅Π½ΡŒ эффСктивно ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ‚ повторСния ΠΊΠΎΠ΄Π°. По ΠΌΠ΅Ρ€Π΅ роста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ функция Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ.

Python прСдоставляСт Π½Π°ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ range() ΠΈΠ»ΠΈ print(). ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ функциями.

Π’ основном Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

Π’ этом руководствС ΠΌΡ‹ обсудим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, опрСдСляСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Python

Π£ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Python Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСимущСства:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅

Python прСдоставляСт ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово def для опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ опрСдСлСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся с синтаксисом опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’ Python послС создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ функция Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки.

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ сообщСниС Β«Hello WorldΒ».

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° return

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Он Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΡƒΠ΄Π°, Π³Π΄Π΅ функция вызываСтся. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ оцСниваСтся, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ возвращаСтся Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ выраТСния ΠΈΠ»ΠΈ Π½Π΅ сущСствуСт сам ΠΏΠΎ сСбС Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ None.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π’Ρ‹Ρ…ΠΎΠ΄:
The sum is: 30

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ sum, ΠΈ Ρƒ Π½Π΅Π΅ Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ c = a + b, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вычисляСт Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ значСния, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ возвращаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ return Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ функция sum() Π²Π΅Ρ€Π½ΡƒΠ»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ None Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

АргумСнты Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

АргумСнты – это Ρ‚ΠΈΠΏΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. АргумСнты ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² скобках. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ любоС количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ запятой.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, содСрТащий Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Π’Ρ‹Π·ΠΎΠ² ΠΏΠΎ ссылкС Π² Python

Π’ Python Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎ ссылкС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ фактичСского значСния Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ссылкС, Ρ‚. Π΅. всС измСнСния, внСсСнныС Π² ссылку Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ исходному Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ссылаСтся ссылка.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° нСизмСняСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°(списка)

Π’Ρ‹Ρ…ΠΎΠ΄:
list inside function = [10, 30, 40, 50, 20, 30]
list outside function = [10, 30, 40, 50, 20, 30]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° измСняСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°(строки)

Π’Ρ‹Ρ…ΠΎΠ΄:
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ строки Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Hi I am there Hows you
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ строки Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Hi I am there.

Π’ΠΈΠΏΡ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Ρ‚ΠΈΠΏΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π²ΠΎ врСмя Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅

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

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

Π’Ρ‹Ρ…ΠΎΠ΄:
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя: Π”ΠΆΠΎΠ½
ΠΏΡ€ΠΈΠ²Π΅Ρ‚, Π”ΠΆΠΎΠ½

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2.

Π’Ρ‹Ρ…ΠΎΠ΄:
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ сумму: 5000
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΡƒΡŽ ставку: 5
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ врСмя Π² Π³ΠΎΠ΄Π°Ρ…: 3
ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚: 750,0

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3

Π’Ρ‹Ρ…ΠΎΠ΄:
TypeError: calculate() отсутствуСт 1 ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚: ‘b’

АргумСнты ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Python позволяСт Π½Π°ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любого ΠΈΠ· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ прСдоставляСтся Π²ΠΎ врСмя Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ этот Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ, Π΄Π°ΠΆΠ΅ Ссли Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’Ρ‹Ρ…ΠΎΠ΄:
My name is John and age is 22
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2.

Π’Ρ‹Ρ…ΠΎΠ΄:
My name is john and age is 22
My name is David and age is 10

АргумСнты ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹(* args)

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

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹Ρ…ΠΎΠ΄:
type of passed argument is
printing the passed arguments.
john
David
smith
nick

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ * ΠΈΠΌΠ΅Π½Π° Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. ΠœΡ‹ Π²Ρ‹Π·Π²Π°Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ. ΠšΠΎΡ€Ρ‚Π΅ΠΆ – это итСративная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, такая ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ список. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ значСния, ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π° * arg, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» for Π² Python.

АргумСнты ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова(** kwargs)

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

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

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

Π’Ρ‹Ρ…ΠΎΠ΄:
printing the message with John and hello

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. Π‘ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ порядкС ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅.

Π’Ρ‹Ρ…ΠΎΠ΄:
Simple Interest: 1900.0
Если ΠΌΡ‹ прСдоставим Π΄Ρ€ΡƒΠ³ΠΎΠ΅ имя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²ΠΎ врСмя Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½Π° ошибка.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π’Ρ‹Ρ…ΠΎΠ΄:
TypeError: simple_interest() got an unexpected keyword argument ‘time’

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

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

Π’Ρ‹Ρ…ΠΎΠ΄:
SyntaxError: positional argument follows keyword argument

Python прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ нСсколько Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСны ΠΊΠ°ΠΊ ** kwargs. ΠŸΠΎΡ…ΠΎΠΆ Π½Π° * args, Π½ΠΎ сохраняСт Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ словаря. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π·Π°Ρ€Π°Π½Π΅Π΅ количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 6. МногиС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова.

ОбъСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ОбъСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… зависит ΠΎΡ‚ мСста, Π³Π΄Π΅ пСрСмСнная ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, объявлСнная Π² ΠΎΠ΄Π½ΠΎΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступна для Π΄Ρ€ΡƒΠ³ΠΈΡ… частСй.

Π’ Python ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ с двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ областСй видимости:

Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ пСрСмСнная, опрСдСлСнная Π²Π½Π΅ любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠΌΠ΅Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ пСрСмСнная, опрСдСлСнная Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная

Π’Ρ‹Ρ…ΠΎΠ΄:
The sum is 60
Value of sum outside the function: 0

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python β€” синтаксис, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π²Ρ‹Π·ΠΎΠ², Π²Ρ‹Ρ…ΠΎΠ΄

Ѐункция β€” это Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°Ρ‡Ρƒ.

Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² любом мСстС основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ дублирования ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΌ Π΅Π³ΠΎ использовании. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… прСимущСств, описанных Π½ΠΈΠΆΠ΅.

Бинтаксис

💁‍♀️ ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π’Ρ‹ Ρ‚ΠΎΡ€Π³ΡƒΠ΅Ρ‚Π΅ ΠΌΡ‘Π΄ΠΎΠΌ, ΠΈ послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ‡Π΅ΠΊ. Π’ Π½Ρ‘ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΠΈΡ€ΠΌΡ‹, Π΄Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ, список Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², ΠΈΡ… количСство, Ρ†Π΅Π½Ρ‹, общая сумма, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ°ΠΊΡ€Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ„Ρ€Π°Π·Π° «Π‘пасибо Π·Π° ΠΏΠΎΠΊΡƒΠΏΠΊΡƒ!».

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

print(«ΠžΠžΠž ΠœΠ΅Π΄ΠΎΠ²Ρ‹ΠΉ ГСксагон») print(«ΠœΡ‘Π΄ Π»ΠΈΠΏΠΎΠ²Ρ‹ΠΉ», end=» «) print(1, end=»ΡˆΡ‚ «) print(1250, end=»Ρ€») print(«\nCΡƒΠΌΠΌΠ°», 1250, end=»Ρ€») print(«\nБпасибо Π·Π° ΠΏΠΎΠΊΡƒΠΏΠΊΡƒ!»)

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°ΡΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ΡΡŒ, ΠΈ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»ΠΈ станут ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, Ρ‡Π΅ΠΊΠΈ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ быстро. Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Π΄Ρ€ΡƒΠ³ нагрянСт ваш Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ ΠΊΡƒΠΏΠΈΡ‚ 10 сортов ΠΌΡ‘Π΄Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… количСствах? Π”Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ согласятся ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Π²Ρ‹ посчитаСтС ΠΎΠ±Ρ‰ΡƒΡŽ сумму ΠΈ внСсётС Π΅Ρ‘ Π² Ρ‡Π΅ΠΊ.

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ процСсс ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

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

# (Π½Π°Π·Π²Π°Π½ΠΈΠ΅, количСство, Ρ†Π΅Π½Π° Π·Π° ΡˆΡ‚ΡƒΠΊΡƒ) honey_positions = [ («ΠœΡ‘Π΄ Π»ΠΈΠΏΠΎΠ²Ρ‹ΠΉ», 3, 1250), («ΠœΡ‘Π΄ Ρ†Π²Π΅Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ», 7, 1000), («ΠœΡ‘Π΄ Π³Ρ€Π΅Ρ‡ΠΈΡˆΠ½Ρ‹ΠΉ», 6, 1300), («Π”ΠΎΠ½Π½ΠΈΠΊΠΎΠ²Ρ‹ΠΉ ΠΌΡ‘Π΄», 1, 1750), («ΠœΠ°Π»ΠΈΠ½ΠΎΠ²Ρ‹ΠΉ ΠΌΡ‘Π΄», 10, 2000), ]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ этот список ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ большС Π½Π΅ придётся.

Π”Π°, ΠΊΠΎΠ΄ стал Π±ΠΎΠ»Π΅Π΅ массивным. Однако Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Ρ‡Π΅ΠΊΠ° Π²Π°ΠΌ Π½Π΅ придётся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΈΡ‚ΠΎΠ³. Достаточно лишь ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ количСство ΠΈ Ρ†Π΅Π½Ρƒ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² спискС. БущСствСнная экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ! Π‘Π»Π°Π²Π° функциям!

Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΈ опрСдСлСния

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово def Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сообщаСт ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° Π½ΠΈΠΌ ΠΊΠΎΠ΄ β€” Π΅ΡΡ‚ΡŒ Π΅Ρ‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Всё вмСстС β€” это объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

# объявим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ my_function() def my_function(): # Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

АргумСнты часто ΠΏΡƒΡ‚Π°ΡŽΡ‚ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

# ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π²Π° мноТитСля, Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½ΠΎΠ΅ # Π΄ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ def int_multiple(a, b): product = a * b # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ return int(product) print(int_multiple(341, 2.7)) > 920

☝️ Главная Ρ„ΠΈΡˆΠΊΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² дальнСйшСм ΠΊΠΎΠ΄Π΅: ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

# Π½Π°ΠΉΠ΄Ρ‘ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠ· Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ int_multiple # Π²ΠΎ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sqrt() ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π²Ρ‹Π·ΠΎΠ² int_multiple print(math.sqrt(int_multiple(44, 44))) > 44

Π’Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Абстракция

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

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая вычисляСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС. Нам Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΡ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅: ΠΈ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ для самолёта срСдняя ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ.

def calculate_speed(distance, time): return distance / time

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

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΈ созданы Ρ€Π°Π΄ΠΈ возмоТности ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ примСнСния. Код Π±Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прСвратился Π±Ρ‹ Π² ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ»ΠΎΡ‚Π½ΠΎ, Π½Π° порядки ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅Π΅ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΈΡ… использованиСм.

НапримСр, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами чисСл, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ часто ΠΈΡ… ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки (ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ), Π²Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅Π»ΠΎ этой ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ВсСго 10 Ρ‚Π°ΠΊΠΈΡ… сортировок, ΠΈ ΠΏΡ€ΠΈΠ²Π΅Ρ‚, лишниС 60 строк ΠΊΠΎΠ΄Π°.

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π Π°Π·Π±ΠΈΡ‚ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ слоТных процСссов Π½Π° простыС ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ β€” ваТная Ρ‡Π°ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ΠΈΠ½Π³Π°, Ρ‚Π°ΠΊ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. Π’ повсСднСвности ΠΌΡ‹ занимаСмся этим нСосознанно. Когда убираСмся Π² ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π΅, ΠΌΡ‹ пылСсосим, ΠΌΠΎΠ΅ΠΌ ΠΏΠΎΠ»Ρ‹ ΠΈ ΠΎΠΊΠ½Π°, ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ повСрхности ΠΎΡ‚ ΠΏΡ‹Π»ΠΈ ΠΈ Π½Π°Π²ΠΎΠ΄ΠΈΠΌ блСск Π½Π° всё блСстящСС. Всё это β€” ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ большого процСсса ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «ΡƒΠ±ΠΎΡ€ΠΊΠ°», Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π±ΠΎΠ»Π΅Π΅ простыС подпроцСссы.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ строится Π½Π° использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ β€” своя функция. Вакая ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π² Ρ€Π°Π·Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ дальнСйшСй ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Допустим, ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Нам Π½ΡƒΠΆΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая считываСт значСния ΠΈΠ· Π±Π°Π·Ρ‹, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ…, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° экран, Π° Π·Π°Ρ‚Π΅ΠΌ записываСт Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π±Π°Π·Ρƒ.

Π‘Π΅Π· примСнСния ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ получится сплошная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ инструкций:

Но Ссли вынСсти ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚ΠΎ тСкст Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ получится малСньким ΠΈ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΌ.

Π­Ρ‚ΠΎ ΠΈ называСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.

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

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

💁‍♀️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ: Π² Π’Π£Π—Π΅ учатся Π΄Π²Π° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° с ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ ЀИО. Π˜Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ. Если ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ пространствами ΠΈΠΌΡ‘Π½ Π³Ρ€ΡƒΠΏΠΏΡ‹ этих студСнтов, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½Π°. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… своСй Π³Ρ€ΡƒΠΏΠΏΡ‹ ЀИО этих студСнтов Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

ОбъявлСниС ΠΈ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

def hello(): print(‘Adele is cute’)

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ это сдСлали, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π² любой части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ Π½ΠΈΠΆΠ΅ самого объявлСния.

# ΠΊΠΎΠ΄ выполняСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, поэтому сСйчас ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ # Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ сущСствовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ hello hello() def hello(): print(‘Adele is cute’) > NameError: name ‘hello’ is not defined

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ стоит лишь ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ объявлСниС ΠΈ Π²Ρ‹Π·ΠΎΠ² мСстами, ΠΈ всё Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

def hello(): print(‘Adele is cute’) hello() > Adele is cute

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ области видимости:

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ (L)

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости находится Π²Π½ΡƒΡ‚Ρ€ΠΈ def :

def L(): # пСрСмСнная i_am_local являСтся локальной Π²Π½ΡƒΡ‚Ρ€ΠΈ L() i_am_local = 5

ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (E)

def e(): x = 5 def inner_e(): nonlocal x x = x + 1 return x return inner_e() print(e()) > 6

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ (G)

# G num = 42 def some_function(n): res = n + num return res print(some_function(1)) > 43

АргумСнты

ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅

Вспомним, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€” это ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ пСрСдаётся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. АргумСнтом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‚Π°ΠΊ ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ЗначСния Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ согласно ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠΌΡ‘Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅

ΠŸΡƒΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ функция, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π° Π·Π°Ρ‚Π΅ΠΌ выводящая ΠΈΡ… Π½Π° экран. Python позволяСт явно Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ соотвСтствия ΠΌΠ΅ΠΆΠ΄Ρƒ значСниями ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

def print_trio(a, b, c): print(a, b, c) print_trio(c=4, b=5, a=6) > 6 5 4

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ соотвСтствиС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ, Π° Π½Π΅ ΠΏΠΎ позициям Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)

Python позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Если ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π΅ пСрСдаСтся, Ρ‚ΠΎ Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

def not_necessary_arg(x=’My’, y=’love’): print(x, y) # Ссли Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠ½Π° ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ not_necessary_arg() > My love # ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ значСния Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ собой значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ not_necessary_arg(2, 1) > 2 1

АргумСнты ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ (args, kwargs)

Когда Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстно, сколько ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π—Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠ° «*» ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° сообщаСт ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ количСство ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ:

def infinity(*args): print(args) infinity(42, 12, ‘test’, [6, 5]) > (42, 12, ‘test’, [6, 5])

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ args составляСт ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ количСство ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ этом случаС ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ставится » ** «:

def named_infinity(**kwargs): print(kwargs) named_infinity(first=’nothing’, second=’else’, third=’matters’) >

Π—Π΄Π΅ΡΡŒ kwargs ΡƒΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, Π° Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈ ΠΏΠΎ ссылкС

Π’ Python Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹, ΠΊΠ°ΠΊ ΠΏΠΎ ссылкС, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Всё зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ ссылкС. Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΡ… содСрТимоС ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΏΡ€ΠΈ этом ссылка Π½Π° сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π’ Python измСняСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ это:

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ измСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Одна ΠΈΠ· частых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

💭 Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ сущСствуСт понятиС «Ρ„ункциями с ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌΠΈ эффСктами» β€” ΠΊΠΎΠ³Π΄Π° функция Π² процСссС своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ измСняСт значСния Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. По возмоТности, ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°)

ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° «**»:

def big_dict(**arguments): print(arguments) big_dict(key=’value’) >

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния (return)

Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python способны Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ любой Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Распаковка Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

☝️ ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ количСство Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с количСством ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ распаковкС. Π˜Π½Π°Ρ‡Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ошибка:

ΠŸΡƒΡΡ‚Π°Ρ функция

Иногда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° ΠΏΠΎΡ‚ΠΎΠΌ, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ объявлСнная функция Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π»Π° ошибки ΠΈΠ·-Π·Π° отсутствия Ρ‚Π΅Π»Π°, Π² качСствС Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово pass :

ЧистыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты

НСмного Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСр ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Всё это β€” ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты.

Π£ чистых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов Π½Π΅Ρ‚. Π’Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ…ΠΎΠ΄Π΅ выполнСния, Π½Π΅ Ρ€Π°ΡΡΡ‹Π»Π°ΡŽΡ‚ ΠΈ Π½Π΅ выводят Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ЧистыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ производят вычислСния ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ зависящий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Π½ΠΈΡ… самих Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Lambda Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

lambda_test = lambda a, b: pow(a, b) print(lambda_test(2, 4)) > 16

Docstring

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ β€” особоС искусство. Оно сущСствуСт ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈ сопоставимо с Π½Π΅ΠΉ ΠΏΠΎ ваТности. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ большС, Ρ‡Π΅ΠΌ самого ΠΊΠΎΠ΄Π°.

Когда Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ большая ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ ΠΎΠ΄Π½Π°, Π΄Π° ΠΈ Π΅Ρ‰Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π»Ρ‘Ρ‚ подряд, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‚ прямо ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² python

Аннотация Ρ‚ΠΈΠΏΠΎΠ²

Python β€” язык с динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ситуации, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ оТиданиям Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ Ρ†Π΅Π»Ρ‹Π΅ числа, Π°, допустим, строки. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ случаи ΠΈ сильнСС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π±Ρ‹Π»Π° ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π° аннотация Ρ‚ΠΈΠΏΠΎΠ².

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.

ΠŸΡ€ΠΈ этом ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ считываСт Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ ΠΈΡ… Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ vs ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ β€” Π² Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅?

Для языка Π½Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ функциями ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ. Но с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программиста β€” это Ρ€Π°Π·Π½Ρ‹Π΅ сущности.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ β€” Π½Π΅Ρ‚. ΠžΡ‚ΡΡŽΠ΄Π° Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‚ ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ области ΠΈΡ… примСнСния ΠΈ смысл использования. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΈΠ΅ вычислСния Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ бСссмыслСнно.

def proc(i, j): pow(i, j) proc(1, 200)

def func(i, j): return pow(i, j) print(func(3, 2)) > 9

И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ инструкций, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Π½Π΅ΠΊΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ лишСно смысла:

def print_low_word(word): print(word.lower()) return 0 s = ‘GOOD’ print_low_word(s) > good

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ прСдставляСт собой Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ цСнности, поэтому print_low_word(s) Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ.

ВрСмя выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ врСмя выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Ρ‘ Π²Ρ‹Π·ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°:

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ рСкурсия

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ.

def outerFunc(): def firstInner(): print(‘This is first inner function’) def secondInner(): print(‘This is second inner function’) firstInner() secondInner() outerFunc() > This is first inner function > This is second inner function

РСкурсия являСтся частным случаСм Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ функция, которая Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ саму сСбя.

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

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

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