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

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

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

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π˜Ρ… ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π² скобках Π²ΠΎ врСмя Π²Ρ‹Π·ΠΎΠ²Π°. Они дСлятся Π½Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ (ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅) ΠΈ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ (ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅).

Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Python

Π›ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с инструкции def (ΠΎΡ‚ английского define β€” Β«ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΒ»). Π—Π° def Π² Python ΠΈΠ΄Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, послС β€” Π½Π°Π±ΠΎΡ€ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π”Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π±Π»ΠΎΠΊ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ с Π½ΠΎΠ²ΠΎΠΉ строки.

Π’ Python Π½Π΅Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок для Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. ВмСсто Π½ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ отступы Π²Β Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π°. Новая инструкция β€” новая строка. Или ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой.Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΠ· Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово return. Если этого Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ достигаСт ΠΊΠΎΠ½Ρ†Π°, функция Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ. ВозвращаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° None.

https://sky.pro/media/modul-requests-v-python/

АргумСнты ΠΈ ΠΈΡ… Π²ΠΈΠ΄Ρ‹

Если Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΡ… Π² скобках ΠΏΠΎ порядку. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Π’Π°ΠΊΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ΄Ρ‚ΠΈ Π² любом порядкС, Π½ΠΎ сначала β€” ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅.

πŸš€ ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅

Π­Ρ‚ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ функция Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π²Π°ΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС.

def addfunc(val1, val2):
    return val1 + val2

result = addfunc(3, 2)
print(result)
5

addfunc() # Π²Ρ‹Π·ΠΎΠ² Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
Traceback (most recent call last):
...
TypeError: addfunc() missing 2 required positional arguments: 'val1' and 'val2'

addfunc(1) # Π²Ρ‹Π·ΠΎΠ² с ΠΎΠ΄Π½ΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ
Traceback (most recent call last):
...
TypeError: addfunc() missing 1 required positional argument: 'val2'

Когда Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ addfunc, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π΅ΠΉ Π΄Π²Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Они  Π±ΡƒΠ΄ΡƒΡ‚ доступны Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ассоциированы с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ val1 ΠΈ val2. Если этого Π½Π΅ сдСлаСтС, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ TypeError.

Но ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Ρ‹ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Для этого Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ конструкция, ΠΎΠ½Π° ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

def addconcat(*args):
    value = 0

    for item in args:
        if isinstance(item, (int, float)):
            value += item
        else:
            print(f"{item} is not a digit")

    return value

total = addconcat(1, "Hello", 2, 3, 4, "Python", 5.0, 6.25, 7.15, 'string')
Hello is not a digit
World is not a digit
string is not a digit

print("Total:", total)
Total: 28.4

ΠžΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ мноТСства с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ индСксации:

def demo_func(*args):
    try:
        print(args[0])
        print(args[1])
    except IndexError:
        pass

πŸš€ Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅

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

def hey_concat(*args, name="World!"):
    print("Hey there,", name)

hey_concat()
Hey there, World!

hey_concat(name="Alex")
Hey there, Alex

Атрибуту name присвоили ΠΈΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ помСняСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ склСивания строк ΠΈΒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄.

Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ упаковывания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ, Π½ΠΎ вмСсто мноТСства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ:

def print_kwargs(**kwargs):
    print(kwargs) # ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ

print_kwargs(kone="One", ktwo=2, kthree=3.0)
{'kone': 'One', 'ktwo': 2, 'kthree': 3.0}

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

def kwargs_addconcat(**kwargs):

    a = kwargs. get("a", None)
    b = kwargs.get("b", None)

    if not isinstance(a, type(b)):
        raise TypeError("Ошибка! Π Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹")

    if isinstance(a, str):
        return f"Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк\n{a + b}"

    elif isinstance(a, int):
        return f"Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слоТСния чисСл\n{a + b}"

    return "Ошибка"


print(kwargs_addconcat(a=1, b=2))
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слоТСния чисСл
3

print(kwargs_addconcat(a=1, b="World!"))
...
TypeError: Ошибка! Π Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹

print(kwargs_addconcat(a="Hello, ", b="World!"))
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк
Hello, World!

# Π‘Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
print(kwargs_addconcat())
Ошибка

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅ΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ kwargs. Из Π½Π΅Π΅ Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ a ΠΈ b пытаСмся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ значСния. А Ссли ΠΎΠ½ΠΈ нС найдутся β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

None. Π”Π°Π»Π΅Π΅ провСряСм Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ±ΠΎΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π—Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния в зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π•Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π‘Π½Π°Ρ‡Π°Π»Π° Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅) Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Π‘Ρ€Π°Π·Ρƒ Π·Π° Π½ΠΈΠΌΠΈ ΠΈΠ΄Π΅Ρ‚ пСрСмСнная, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±Π΅Π· явного ΠΊΠ»ΡŽΡ‡Π°. Π”Π°Π»Π΅Π΅ β€” ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ с прСдустановлСнным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ). ПослС Π½Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ словаря с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

def func(a, b, *args, name="Default", **kwargs):
    return None

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ области видимости

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

✈️ Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ

Π­Ρ‚ΠΎ пространство ΠΈΠΌΠ΅Π½ модуля. Π’ Π½Π΅Π³ΠΎ входят названия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, классов, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², созданных Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

var1 = 12

def global_func():
    print(x)

Π—Π΄Π΅ΡΡŒ цСлочислСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

var1 ΠΈ функция global_func β€” Π² глобальной области видимости.

✈️ Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для вычислСний. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠΌΠ΅Π½ ΠΈ случайной пСрСзаписи, ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ выдСляСтся своС пространство:

var1 = 2213 # глобальная пСрСмСнная

# глобальная функция, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
def func_one():
    print(var1)

# глобальная функция, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
def func_two():
    var1 = "Local value" # созданиС локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    print(var1)

# функция, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
def func_three():
    global var1
    var1 = "Local to global"

Π’ послСднСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова global вмСстС с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

func_one()
2213

func_two()
Local value

func_three() # функция мСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
func_one() # ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ func_one
Local to global

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

Π’ Python Π΅ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово

nonlocal. НапримСр, Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΠΏΡ€ΠΈ создании Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Оно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π²Ρ‹ΡˆΠ΅, Π½ΠΎΒ ΠΏΡ€ΠΈ этом Π½Π΅ ΠΎΡ‚Π½ΠΎΡΡΡ‰ΡƒΡŽΡΡ ΠΊ глобальной области видимости.

Π’Π°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ счСтчика Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python с этим ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом:

def count_deco(wrapper_func):
    var = 0

    def inner():
        nonlocal var
        wrapper_func()
        var += 1
        print(var)
    return inner


@count_deco
def deco_demo():
    print("A few of example text...")


for _ in range(5):
    deco_demo()

A few of example text...
1
A few of example text.
.. 2 A few of example text... 3 A few of example text... 4 A few of example text... 5

Lambda-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅)

Одна ΠΈΠ· интСрСсных особСнностСй Python β€” это Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ (лямбда) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ простоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. Π§Π°Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ элСмСнтов мноТСства:

list_values = [1, 3, 4, 2, 6, 7, 5, 8, 9]
filter(lambda x : x % 2 == 0, list_values)
[2, 4, 6, 8]

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

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСний Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции return. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ любого Ρ‚ΠΈΠΏΠ° ΠΈ Π² любом количСствС Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ.

Если функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ‹ Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (tuple). Π’ΠΎΠ³Π΄Π° ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ элСмСнтам ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎ индСксу, Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ распаковки мноТСства, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Ѐункция, Π³Π΄Π΅ явно Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° None.

def arithmetics(x, y):
    return x + y, x - y, x * y, x / y, x // y

results = arithmetics(22, 3)

print(results)
(25, 19, 66, 7.333333333333333, 7)

print(results[0])
25

r1, r2, r3, r4, r5 = arithmetics(4, 4)

# Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ слоТСния ΠΈ умноТСния
print(r1)
8

print(r3)
16

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

Помимо ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ плюс β€” ΠΎΠ½ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π½Π΅ хранят всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚. Π•ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Вакая функция возобновляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡŒ. Она Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ значСния, Π° Π½Π΅ вычисляСт ΠΈΡ….

QA-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€. Знакомство с Python. Π£Ρ€ΠΎΠΊ 1 Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ значСния, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово yield. Когда элСмСнты ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Ρ‚ΠΎΡ‚ Π²ΠΎΠ·Π±ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° StopIteration:

def gen_demo(times, var):
    for _ in range(times):
        yield var

gen_inst = gen_demo(25, "Gen demo text")

for _ in range(26):
    print(next(gen_inst))

Gen demo text
Gen demo text
Gen demo text
Gen demo text
. ..

Traceback (most recent call last):
...
StopIteration

[FAQ] ЧастыС вопросы

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

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° β€” это Сдиничная инструкция, функция β€” ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая выполняСт дСйствиС.

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости?Β 

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΠ΅Π½.

Как провСсти распаковку мноТСства?Β 

НуТно ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΆΠ΅ количСству ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, сколько Π² Π½Ρ‘ΠΌ содСрТится ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?Β 

НСт, Π½ΠΎ Ρ‡Π°Ρ‰Π΅ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π’Π΅Π±ΠΈΠ½Π°Ρ€Ρ‹

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎ функциях Π² Python

  • Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ своя ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ входят всС пространства ΠΈΠΌΠ΅Π½ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π²Ρ‹ΡˆΠ΅.
  • Если явно Π½Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, функция Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° None.
  • Ѐункция с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ нСсколькими инструкциями yield Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ.
  • Π’ Python Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ² β€” ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅. Оба Ρ‚ΠΈΠΏΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

ΠžΡΠ²ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΡŽ Python-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π° 10 мСсяцСв Π² ΠΎΠ½Π»Π°ΠΉΠ½-унивСрситСтС Skypro. Вас ΠΆΠ΄Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π² срСдС коммСрчСской Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΎΠΏΠ»Π°Ρ‚Ρƒ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ Python. ΠŸΠΈΡΠ°Ρ‚ΡŒ сСрвСры для ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, прилоТСния ΠΈΠ»ΠΈ ΠΈΠ³Ρ€Ρ‹. Π Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ сСрвисов.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Python: ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€

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

Π§Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΈ функциях Π² Python?

Говоря ΠΎ функциях Π² Python, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π΄Π²Π° аспСкта: 1) функция Π² Python β€” Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ функциям; 2) Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ…, возвращая Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ посрСдством return.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Ѐункция ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Python

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

>>> # исходный список
>>> a = [1, 2, 3, 4, 5]
>>> # функция, которая Π²ΠΎΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ΅ Π΅ΠΉ число 
>>> sq = lambda x: x**2
>>> # ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python
>>> print(sq(5))
25
>>> # ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ²
>>> b = list(map(sq, a))
>>> print(b)
[1, 4, 9, 16, 25]

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ map Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sq. ПослСдняя Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠΎ всСм элСмСнтам нашСго списка a.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Python функция являСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ __call__(). ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создали ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ класс:

class DemoCall():
def __call__(self):
return "Hello!"

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса Π² Python ΠΌΡ‹ смоТСм Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

>>> hello = DemoCall()
>>> hello()
'Hello!'

Ѐункция Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π½Π° этом основана идСя замыкания (closures) Π² Python.

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‰ΡƒΡŽ 2 числа:

def mul(a):
def helper(b):
return a * b
return helper

Π’ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π΄Π²Π° Π²Π°ΠΆΠ½Ρ‹Ρ… свойства: 1) Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mul() ΠΌΡ‹ создаём Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ helper(); 2) функция mul() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ helper() Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’Ρ‹Π·ΠΎΠ² этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python:

>>>mul(4)(2)
8

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° Π±Π°Π·Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mul() собствСнныС кастомизированныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Python, ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‰ΡƒΡŽ Π½Π° 3:

>>>three_mul = mul(3)
>>>three_mul(5)
15

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±Ρ‹Π»Π° построСна функция three_mul(), ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‰Π°Ρ Π½Π° 3 любоС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ΅ Π΅ΠΉ число.

Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ выступаСт другая функция. Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ Π² Python добавляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ мСняя Π΅Ρ‘ содСрТимоС.

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

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΠ°Ρ€Ρƒ простых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Python:

def first_test():
print("Test function 1")
def second_test():
print("Test function 2")

ΠŸΡ€ΠΈ этом ΠΌΡ‹ ΠΆΠ΅Π»Π°Π΅ΠΌ ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ основного ΠΊΠΎΠ΄Π° нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π»Π°ΡΡŒ строчка β€œStart function”, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ – строка β€œStop function”.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡƒΡ‚ΠΈ. Для Π½Π°Ρ‡Π°Π»Π° создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

def simple_decore(fn):
def wrapper():
print("Start function")
fn()
print("Stop function")
return wrapper

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ:

first_test_wrapped = simple_decore(first_test)
second_test_wrapped = simple_decore(second_test)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ first_test ΠΈ second_test Π½Π΅ помСнялись.

>>> first_test()
Test function 1
>>> second_test()
Test function 2

Наши Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ second_test_wrapped ΠΈ first_test_wrapped ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ ΠΈ Π½ΡƒΠΆΠ΅Π½.

>>> first_test_wrapped()
Start function
Test function 1
Stop function
>>> first_test_wrapped()
Start function
Test function 1
Stop function

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π½Π°Π΄ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ first_test ΠΈ second_test, Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

first_test = first_test_wrapped
second_test = second_test_wrapped

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ:

>>> first_test()
Start function
Test function 1
Stop function
>>> second_test()
Start function
Test function 2
Stop function

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π½Π°ΠΌΠΈ дСйствия ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈΠ΄Π΅ΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°.

ΠŸΡ€Π°Π²Π΄Π°, вмСсто строк:

def first_test():
print("Test function 1")
first_test_wrapped = simple_decore(first_test)
first_test = first_test_wrapped 

ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅:

@simple_decore
def first_test():
print("Test function 1")

Π’ нашСм случаС @simple_decore – это Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°

Π‘Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ функция Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€. Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ выводящий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄Π΅ΠΊΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Π½Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΅Ρ‘ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅.

def param_transfer(fn):
def wrapper(arg):
print("Start function: " + str(fn.__name__) + "(), with param: " + str(arg))
fn(arg)
return wrapper

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹Π²ΠΎΠ΄ΡΡ‰ΡƒΡŽ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ числа, Π° Π² качСствС Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°, ΡƒΠΊΠ°ΠΆΠ΅ΠΌ созданный param_transfer:

@param_transfer
def print_sqrt(num):
print(num**0.5)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ 4:

>>> print_sqrt(4)
Start function: print_sqrt(), with param: 4
2.0

Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса Π² Python

Π‘ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° param_transfer:

def method_decor(fn):
def wrapper(self):
print("Start method: " + str(fn. __name__))
fn(self)
return wrapper

Π’Π΅ΠΏΠ΅Ρ€ΡŒ приступим ΠΊ созданию класса для прСдставлСния 2-ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° (матСматичСского). Π’ классС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ norm(), выводящий ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°.

class Vector():
def __init__(self, px = 0, py = 0):
self.px = px
self.py = py
@method_decor
def norm(self):
print((self.px**2 + self.py**2)**0.5)

Π§Ρ‚ΠΎ ΠΆΠ΅, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ нашСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

>>> vc = Vector(px=10, py=5)
>>> vc.norm()
Start method: norm
11.180339887498949

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€

Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ создаваСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ значСния. Π§Ρ‚ΠΎΠ±Ρ‹ это стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€, Π½ΡƒΠΆΠ½ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

def decor_with_return(fn):
def wrapper(*args, **kwargs):
print("Start method: " + str(fn.__name__))
return fn(*args, **kwargs)
return wrapper

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этого Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° ΠΈ для оборачивания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

@decor_with_return
def calc_sqrt(val):
return val**0. 5

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ calc_sqrt() с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 16:

>>> tmp = calc_sqrt(16)
Start method: calc_sqrt
>>> print(tmp)

Π£Π·Π½Π°ΠΉΡ‚Π΅ ΠΎΡ‚ А Π΄ΠΎ Π― ΠΎ функциях Python

Python β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных языков программирования, доступных сСгодня. Он ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сСкторах бизнСса, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡƒΠΊΠ° ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…. Учитывая Π΅Π³ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС, Π½Π΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Python ΠΏΡ€Π΅Π²Π·ΠΎΡˆΠ΅Π» Java ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠΈΠΉ язык программирования.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python?

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

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

Π’ Python Π²Ρ‹ создаСтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово def . Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ этого.

Бинтаксис: имя опрСдСлСния (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹) :

Β  ЗаявлСниС

Β  Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

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

Рис: Ѐункция Python

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово def Ρ‚ΠΎΠ»ΡŒΠΊΠΎ создаСт ΠΈ опрСдСляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки.

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

Рис. Для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python

РаспространСнная ошибка программирования:

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ отступа Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ являСтся синтаксичСской ошибкой.

НадлСТащая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° программирования :

НС рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Они ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ послС ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², сколько Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ² ΠΈΡ… запятой.

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

Рис: Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ функция Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ количСством Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Если ваша функция ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с двумя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

ΠžΠ±Ρ‰Π°Ρ ошибка программирования:

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ двоСточия (:) послС списка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ являСтся синтаксичСской ошибкой.

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

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

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

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

Β 

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

2. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»Π° Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Когда Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΡƒ ( * ), ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

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

Рис: ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

3. АргумСнты ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов

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

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

Рис: АргумСнт ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return. Он Β«Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Β» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ сторонС.

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

Рис. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² функциях Python

Ѐункция всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return, ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ None .

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

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

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

Рис. Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

РСкурсивная функция

РСкурсивная функция β€” это функция, которая повторяСт своС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ условиС.

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

Рис.: РСкурсивная функция

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ упраТнСния

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ практичСскиС упраТнСния ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои знания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Python.

Вопрос 1: ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая вычисляСт ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ чисСл Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 1 Π΄ΠΎ 11, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°:

Рис. РСшСниС 1

Вопрос 2: Β  ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ всС числа Π² спискС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°:

Рис. РСшСниС 2

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

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

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

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы, ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΈΡ… Π½ΠΈΠΆΠ΅, ΠΈ наши спСциалисты отвСтят Π½Π° Π½ΠΈΡ….

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Python?

Python β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых вострСбованных Π½Π°Π²Ρ‹ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСгодня ΠΈΡ‰ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»ΠΈ Π²ΠΎ всСх отраслях. Если Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ставки Π² своСй ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅, Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° наш ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс Python сСгодня!

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° Python: ΠŸΠ°ΠΌΡΡ‚ΠΊΠ° ΠΏΠΎ функциям Python

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Иногда Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π²Π²ΠΎΠ΄Π° для прСдоставлСния Π΄Π°Π½Π½Ρ‹Ρ… для своСго ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎΡ‚ Π²Ρ…ΠΎΠ΄ опрСдСляСтся с использованиСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² .

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ β€” это ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Им ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС ΠΊΠΎΠ΄Π°.

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

 

def write_a_book(пСрсонаТ, настройка, special_skill):

print(пСрсонаТ + "находится Π²" +

настройка + "ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅" +

special_skill)

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

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

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

 

def ready_for_school(Ρ€ΡŽΠΊΠ·Π°ΠΊ, ΠΏΠ΅Π½Π°Π»):

if (Ρ€ΡŽΠΊΠ·Π°ΠΊ == 'ΠΏΠΎΠ»Π½Ρ‹ΠΉ' ΠΈ ΠΏΠ΅Π½Π°Π» == 'ΠΏΠΎΠ»Π½Ρ‹ΠΉ'):

print ("Π― Π³ΠΎΡ‚ΠΎΠ² ΠΊ школС!")

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

НСкоторыС Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ нСсколько Ρ€Π°Π·. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова def . ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово return , Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

 

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ my_function() с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ x

def my_function(x):

return x + 1

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

print(my_function(2)) # Π’Ρ‹Π²ΠΎΠ΄: 3

print ( my_function(3 + 5)) # Π’Ρ‹Π²ΠΎΠ΄: 9

ΠžΡ‚ΡΡ‚ΡƒΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ отступ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°. Код Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ отступ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Ѐункция Python β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°. Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ объявлСниСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ отступ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ для ΠΈ , Ссли , Ссли отступ строк Π½Π΅ мСньшС ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки ΠΊΠΎΠ΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

 

# ΠžΡ‚ΡΡ‚ΡƒΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ²

def testfunction(number):

# Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ testfunction

print("Π’Π½ΡƒΡ‚Ρ€ΠΈ тСстовой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ") number):

# Π‘ΠΎΠ»ΡŒΡˆΠ΅ отступов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ 'for' ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ

# Π½ΠΎ всС Π΅Ρ‰Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

sum += x

возвращаСмая сумма

print("Π­Ρ‚ΠΎ Π½Π΅ Ρ‡Π°ΡΡ‚ΡŒ тСстовой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ")

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

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

НапримСр, прСдоставлСнный ΠΊΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ doHomework() .

 

doHomework()

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

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² python β€” это ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ для фактичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Когда функция вызываСтся , эти значСния ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ .

НапримСр, Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ .sales() ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ «ЀСрмСрский Ρ€Ρ‹Π½ΠΎΠΊΒ», «зубная паста» ΠΈ Β«1 Π΄ΠΎΠ»Π»Π°Ρ€Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ product_store , item_on_sale ΠΈ cost .

 

ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΄Π°ΠΆ (ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ_ΠΌΠ°Π³Π°Π·ΠΈΠ½, Ρ‚ΠΎΠ²Π°Ρ€_Π² ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ΅, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ):

print(ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ_ΠΌΠ°Π³Π°Π·ΠΈΠ½ + "продаСтся" + Ρ‚ΠΎΠ²Π°Ρ€_Π² ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ΅ + " Π·Π° " + ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ)

ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ("ЀСрмСрский Ρ€Ρ‹Π½ΠΎΠΊ", "зубная паста", "1$")

АргумСнты ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ с ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Когда Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ с использованиСм ΠΈΡ… ΠΈΠΌΠ΅Π½, ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова. ИспользованиС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² любом порядкС β€” , Π° Π½Π΅ , просто Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если функция вызываСтся Π±Π΅Π· значСния для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

 

def findvolume(Π΄Π»ΠΈΠ½Π°=1, ΡˆΠΈΡ€ΠΈΠ½Π°=1, Π³Π»ΡƒΠ±ΠΈΠ½Π°=1):

print("Π”Π»ΠΈΠ½Π° = " + str(Π΄Π»ΠΈΠ½Π°))

print("Π¨ΠΈΡ€ΠΈΠ½Π° = " + str(ΡˆΠΈΡ€ΠΈΠ½Π°))

print ("Π“Π»ΡƒΠ±ΠΈΠ½Π° = " + str(Π³Π»ΡƒΠ±ΠΈΠ½Π°))

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π΄Π»ΠΈΠ½Π° * ΡˆΠΈΡ€ΠΈΠ½Π° * Π³Π»ΡƒΠ±ΠΈΠ½Π°;

findvolume(1, 2, 3)

findvolume(Π΄Π»ΠΈΠ½Π°=5, Π³Π»ΡƒΠ±ΠΈΠ½Π°=2, ΡˆΠΈΡ€ΠΈΠ½Π°=4)

findvolume(2, depth=3, width=4)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

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

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция Square_point() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ x_squared , y_squared ΠΈ z_squared .

 

ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Square_point(x, y, z):

x_squared = x * x

y_squared = y * y

z_squared = z * z

# Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ всС Ρ‚Ρ€ΠΈ значСния:

return x_squared, y_squared, z_squared 900 03

Ρ‚Ρ€ΠΈ_Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅, Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅_Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅, ΠΏΡΡ‚ΡŒ_Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ = ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚_Ρ‚ΠΎΡ‡ΠΊΠ°(3, 4 , 5)

ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’ Python пСрСмСнная, опрСдСлСнная Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, называСтся локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π•Π³ΠΎ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½Π΅ области дСйствия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π±Π΅Π· опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ пСрСмСнная a ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ, Ρ‚Π°ΠΊ ΠΈ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Когда Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° функция f1() , a пСчатаСтся ΠΊΠ°ΠΊ 2 , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ локально ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Ρ‚Π°ΠΊ. Однако ΠΏΡ€ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ a Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, a пСчатаСтся ΠΊΠ°ΠΊ 5 , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π²Π½Π΅ области дСйствия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

 

Π° = 5

def f1():

Π° = 2

print(a)

print(a) # Π‘ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ 5

f1() # Π‘ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ 2

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ значСния ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

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

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция check_leap_year Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ, являСтся Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ високосным Π³ΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

 

def check_leap_year(year):

if year % 4 == 0:

return str(year) + "это високосный Π³ΠΎΠ΄."

ΠΈΠ½Π°Ρ‡Π΅:

return str(Π³ΠΎΠ΄) + "Π³ΠΎΠ΄ Π½Π΅ високосный."

year_to_check = 2018

return_value = check_leap_year(year_to_check)

print(returned_value) # 2018 Π³ΠΎΠ΄ Π½Π΅ високосный.

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, опрСдСлСнная Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, называСтся глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Доступ ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ пСрСмСнная a являСтся глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ prints_a . ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ доступСн для prints_a , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ a .

 

a = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚"

def prints_a():

print(a)

# Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ "ΠŸΡ€ΠΈΠ²Π΅Ρ‚"

prints_a()

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Они ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ значСниями, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈ Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅.

Как ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ нСльзя ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π²Π½Π΅ области дСйствия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ опрСдСлСния my_function , поэтому ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ my_function . ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ содСрТимоС value ΠΈΠ·-Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.