|
@@ -31,21 +31,36 @@ while is_even(number):
|
|
number = int(input("Введите число: "))
|
|
number = int(input("Введите число: "))
|
|
print(f"Вы ввели нечетное число {number}, программа завершилась")
|
|
print(f"Вы ввели нечетное число {number}, программа завершилась")
|
|
```
|
|
```
|
|
|
|
+
|
|
~={green}Возврат кортежа=~
|
|
~={green}Возврат кортежа=~
|
|
```python
|
|
```python
|
|
# в return можно не ставить скобки, все равно будет возвращен кортеж
|
|
# в return можно не ставить скобки, все равно будет возвращен кортеж
|
|
def calc_square_and_perimeter(a, b):
|
|
def calc_square_and_perimeter(a, b):
|
|
retun a * b, 2 * (a + b)
|
|
retun a * b, 2 * (a + b)
|
|
```
|
|
```
|
|
|
|
+
|
|
~={green}Возврат списка=~
|
|
~={green}Возврат списка=~
|
|
```python
|
|
```python
|
|
# в данном случае нужны скобки [ ]
|
|
# в данном случае нужны скобки [ ]
|
|
def calc_square_and_perimeter(a, b):
|
|
def calc_square_and_perimeter(a, b):
|
|
return [a * b, 2 * (a + b)]
|
|
return [a * b, 2 * (a + b)]
|
|
```
|
|
```
|
|
|
|
+
|
|
~={green}Передача аргументов=~
|
|
~={green}Передача аргументов=~
|
|
- При комбинированной передачи аргументов сначала должны быть указаны позиционные аргументы, а только потом именованные!
|
|
- При комбинированной передачи аргументов сначала должны быть указаны позиционные аргументы, а только потом именованные!
|
|
- Параметры являются локальными переменными и они определяются в момент вызова функции. В параметры присваиваются ссылки на объекты, переданные в аргументы.
|
|
- Параметры являются локальными переменными и они определяются в момент вызова функции. В параметры присваиваются ссылки на объекты, переданные в аргументы.
|
|
- Параметры функции делятся на `_обязательные_` и `_необязательные_`.
|
|
- Параметры функции делятся на `_обязательные_` и `_необязательные_`.
|
|
- Никогда не используйте изменяемые объекты в качестве значений по умолчанию.
|
|
- Никогда не используйте изменяемые объекты в качестве значений по умолчанию.
|
|
-- Значение по умолчанию вычисляется только один раз при определении функции.
|
|
|
|
|
|
+- Значение по умолчанию вычисляется только один раз при определении функции.
|
|
|
|
+
|
|
|
|
+~={green}Изменяемые объекты в качестве параметров по умолчанию=~
|
|
|
|
+* сперва присваивайте параметру значению _`None`_
|
|
|
|
+* внутри функции проверяйте, если параметр принимает _`None`_, значит создаем пустой изменяемый объект
|
|
|
|
+```python
|
|
|
|
+def append_to_list_2(value, my_list=None):
|
|
|
|
+ if my_list is None:
|
|
|
|
+ my_list = []
|
|
|
|
+ my_list.append(value)
|
|
|
|
+ print(my_list, id(my_list))
|
|
|
|
+ return my_list
|
|
|
|
+```
|