[Ссылка на урок](https://youtu.be/OWgVyRgulkI?si=J-BtI0QqmxcCsx55) ### Области видимости в python ### ```python x, y = 1, 2 print("Расчет глобальных переменных", x * y) def func_1(): print("Расчет глобальных переменных внутри функции", x * y) def func_2(): x, y = 2, 4 print("Расчет переменных определенных внутри функции", x * y) func_1() func_2() print("Расчет глобальных переменных", x * y) ``` ### Передача параметров в функции python ### ```python def plus(a, b, c): return a + b + c # Позиционные res = plus(1, 2, 3) print(res) # Именованные res = plus(a=1, b=2, c=3) print(res) res = plus(c=3, a=1, b=2) print(res) # Позиционные + Именованные res = plus(1, 2, c=3) print(res) # Явное указание, что параметры должны указываться как именованные # Используется * и после нее именованные параметры def plus_1(a, *, b, c): return a + b + c # Не правильно res = plus_1(1, 2, c=3) # Правильно res = plus_1(1, b=2, c=3) ``` ### Распаковка при передаче параметров в функции ### ```python # Распаковка my_list_1 = ['Стул', 'Шкаф', 'Стол']price = { 'c': 200, 'a': 4500, 'b': 2300 } def plus_2(a, b, c): return a + b + c res = plus_2(*my_list_1) print(res) res = plus_1(**price) print(res) def plus_3(x, y, z, a, b, c): print(x + y + z) print(a + b + c) plus_3(*my_list_1, **price) ``` ### Параметры по умолчанию ### ```python # Параметры по умолчанию def plus_4(a=0, b=0, c=0): return a + b + c print(plus_4()) print(plus_4(a=1)) print(plus_4(a=1, b=1)) ``` ### Произвольное число параметров ### ```python # Произвольное число позиционных параметров def plus_all_1(*args): total_plus = 0 for arg in args: total_plus += arg return total_plus print(plus_all_1(1, 2, 3, 4, 5)) print(plus_all_1(1, 2)) # Произвольное число именованных параметров def plus_all_2(**kwargs): for key, value in kwargs.items(): print(key, '=', value) plus_all_2(a=1, b=2, c=3, d=4, z=5) plus_all_2(a=1, b=2) ``` [Назад на главную](readme.md)