1 Что такое функции?
Функции — это именованные блоки кода, которые можно вызывать многократно. Они помогают организовать код, избежать повторений и сделать программу понятнее.
Пример из жизни
Представь, что у тебя есть пульт от телевизора. Вместо того чтобы каждый раз вставать и нажимать кнопки на самом телевизоре, ты просто нажимаешь кнопку на пульте. Пульт — это как функция: ты вызываешь её (нажимаешь кнопку), и она выполняет определённое действие.
# Без функции — повторяем код
print("Привет!")
print("Как дела?")
print("Привет!") # Повторение!
print("Как дела?") # Повторение!
# С функцией — вызываем один раз
def greet():
print("Привет!")
print("Как дела?")
greet() # Вызов функции
greet() # Ещё раз — без повторения кода!
Разбор программы
Ключевое слово def (от английского "define" — определить) создаёт функцию.
greet() — это имя функции. Скобки () означают вызов функции.
Код внутри функции выполняется только при её вызове.
2 Создание функций
Синтаксис создания функции в Python очень простой:
def имя_функции():
# Код функции
print("Это функция")
# Вызов функции
имя_функции()
Структура функции:
def— ключевое слово для создания функцииимя_функции— название функции (обычно с маленькой буквы, слова разделяются подчёркиванием)()— скобки для параметров (могут быть пустыми):— двоеточие в конце строки- Отступ — весь код функции с отступом (4 пробела)
# Примеры правильных имён функций
def calculate_sum():
pass
def print_welcome_message():
pass
def get_user_name():
pass
# Неправильные имена (не используй!)
# def 123function(): # Начинается с цифры
# def my-function(): # Дефис вместо подчёркивания
# def print(): # Это ключевое слово Python
Совет
Имена функций должны быть понятными и описывать, что делает функция.
Например, calculate_area() лучше, чем func1().
3 Параметры и аргументы
Функции могут принимать данные для работы. Эти данные называются параметрами (при создании функции) и аргументами (при вызове функции).
# name — это ПАРАМЕТР
def greet(name):
print(f"Привет, {name}!")
# "Анна" и "Иван" — это АРГУМЕНТЫ
greet("Анна") # Привет, Анна!
greet("Иван") # Привет, Иван!
Параметр
Переменная в определении функции
def func(x):
Аргумент
Значение при вызове функции
func(5)
# Функция с несколькими параметрами
def add_numbers(a, b):
result = a + b
print(f"{a} + {b} = {result}")
add_numbers(5, 3) # 5 + 3 = 8
add_numbers(10, 20) # 10 + 20 = 30
add_numbers(100, 50) # 100 + 50 = 150
4 Возвращаемые значения
Функции могут не только выполнять действия, но и возвращать результат с помощью ключевого слова return.
# Функция, которая возвращает значение
def square(x):
return x * x
# Сохраняем результат в переменную
result = square(5)
print(result) # 25
# Используем результат сразу
print(square(10)) # 100
Важно!
return немедленно завершает выполнение функции и возвращает значение.
Код после return не выполняется!
def check_number(num):
if num > 0:
return "Положительное"
elif num < 0:
return "Отрицательное"
else:
return "Ноль"
# Этот код НИКОГДА не выполнится
print("Это не выведется")
print(check_number(5)) # Положительное
print(check_number(-3)) # Отрицательное
print(check_number(0)) # Ноль
Совет
Функция может возвращать несколько значений одновременно, используя кортеж:
return x, y, z
5 Область видимости переменных
Переменные, созданные внутри функции, существуют только внутри этой функции. Это называется локальной областью видимости.
def my_function():
local_var = "Я локальная"
print(local_var) # Работает
my_function() # Выведет: Я локальная
# print(local_var) # ОШИБКА! Переменная не существует вне функции
Локальные переменные
Созданы внутри функции, доступны только внутри неё
def func():
x = 5 # локальная
print(x)
Глобальные переменные
Созданы вне функций, доступны везде
y = 10 # глобальная
def func():
print(y) # можно использовать
# Глобальная переменная
global_var = "Я глобальная"
def show_global():
# Глобальную переменную можно читать внутри функции
print(global_var) # Я глобальная
def modify_global():
# Чтобы изменить глобальную переменную, нужно использовать global
global global_var
global_var = "Я изменена"
show_global() # Я глобальная
modify_global()
print(global_var) # Я изменена
Внимание!
Избегай использования глобальных переменных внутри функций.
Это делает код сложнее для понимания и отладки.
Лучше передавать данные через параметры и возвращать результаты через return.
6 Параметры по умолчанию
Параметры функции могут иметь значения по умолчанию. Если при вызове функции не передать аргумент, будет использовано значение по умолчанию.
def greet(name, greeting="Привет"):
print(f"{greeting}, {name}!")
greet("Анна") # Привет, Анна!
greet("Иван", "Здравствуйте") # Здравствуйте, Иван!
greet("Мария", "Добрый день") # Добрый день, Мария!
Один параметр по умолчанию
def func(a, b=10):
return a + b
func(5) → 15
func(5, 20) → 25
Несколько параметров по умолчанию
def func(a=1, b=2, c=3):
return a + b + c
func() → 6
func(10) → 15
func(10, 20, 30) → 60
Совет
Параметры по умолчанию должны идти после обычных параметров.
Нельзя писать: def func(a=5, b):
7 Практика
Отлично! Теперь давай закрепим знания на практике. Реши несколько заданий:
Простая функция
Создай функцию say_hello(), которая выводит "Привет, мир!".
Подсказка
Используй ключевое слово def для создания функции.
Функция с параметром
Создай функцию greet(name), которая приветствует человека по имени.
Подсказка
Добавь параметр name в скобки после имени функции.
Функция с несколькими параметрами
Создай функцию add(a, b), которая складывает два числа и выводит результат.
Подсказка
Добавь два параметра a и b, затем сложи их.
Функция с возвратом значения
Создай функцию multiply(a, b), которая возвращает произведение двух чисел.
Подсказка
Используй ключевое слово return для возврата результата.
Параметр по умолчанию
Создай функцию greet(name, greeting="Привет") с параметром по умолчанию.
Подсказка
Укажи значение по умолчанию после параметра через знак =.
Функция с условием
Создай функцию check_age(age), которая проверяет возраст и возвращает "Совершеннолетний" или "Несовершеннолетний".
Подсказка
Используй условие if age >= 18 внутри функции.
Функция с циклом
Создай функцию print_numbers(n), которая выводит числа от 1 до n.
Подсказка
Используй цикл for с функцией range() внутри функции.
Калькулятор
Создай функцию calculator(a, b, operation), которая выполняет математические операции (+, -, *, /).
Подсказка
Используй условие if/elif/else для выбора операции.