День седьмой 28.12.2023

Функции def

Функция это блок кода который можно выполнять многократно

def sum(a, b):
	c = a + b
	print(c)

a = 5
b = 3

sum(a, b) #8

a = 8
b = 12

sum(a, b) #20

Функция возвращает none если нет ключевого слова return

Функцию нужно вызвать для того что бы выполнить код внутри функции

У функции может не быть параметров. Так же можно не вызывать функцию return

def my_fn(a, b):
	a = a + 1
	с = a + b
	return с

res = my_fn(10, 2)
print(res)
#13

1. Параметрам 'a' и 'b' присваиваются значения 10 и 2
2. Значение 'a' увеличивается на 1
3. Сумма значений 'a' и 'b' присваеватеся новой переменной 'c'
4. Возращается значение 'c'
5. Результат вызова функции присваевается переменной 'res'
6. Значение переменной 'res' выводится в терминал

Самая короткая функция

В синтаксисе пайтон обязательно должна быть хотя бы одна строка в функции. Pass это просто ключевое слово, что бы тело функции не было пустым.

def my_fn():
		pass

print(my_fn())
#None

Передача неизменяемых объектов

def my_fn(a, b):
	a = a + 1
	c = a + b
	return c

num_one = 10
num_two = 2

res = my_fn(num_one, num_two)
print(res)
print(num_one)

Передача изменяемых объектов

def increase_person_age(person):
	person['age'] += 1
	return person

person_one = {
	'name': 'Bob',
	'age': 21
}

increase_person_age(person_one)
print(person_one['age'])
#22

Функция изменяет внешний объект. 
Не рекомендуется внутри функции изменять внешний объект

Как избежать изменения внутри функции внешнего объекта

Создание копии объекта

Метод .copy создает только поверхностную копию

def increase_person_age(person):
	person_copy = person.copy()
	person_copy['age'] += 1
	return person_copy

person_one = {
	'name': 'Bob',
	'age': 21
}

new_person = increase_person_age(person_one)
print(new_person['age'])
#22
print(person_one['age'])
#21

Объединение списков в Python

Для объединения списков в Python можно использовать оператор “+”. Он позволяет просто складывать два списка в один.

list1 = [1, 2, 3]
list2 = [4, 5, 6]

result = list1 + list2
print(result)
#[1, 2, 3, 4, 5, 6]

Также можно использовать метод “extend()”, который добавляет элементы в конец списка.

list1 = [1, 2, 3]
list2 = [4, 5, 6]

list1.extend(list2)
print(list1)
#[1, 2, 3, 4, 5, 6]

Обратите внимание, что при использовании метода “extend()” исходный список будет изменен, в то время как при использовании оператора “+” будет создан новый список.