108 lines
2.6 KiB
Markdown
108 lines
2.6 KiB
Markdown
[Ссылка на урок](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) |