Функции — это один из самых важных инструментов в программировании. Они позволяют группировать код в логические блоки, которые можно использовать многократно. Представь, что функция — это рецепт: один раз написал, а потом можешь использовать снова и снова, просто вызывая её по имени.
В этом уроке мы научимся создавать свои функции с помощью ключевого слова def, понимать разницу между локальными и глобальными переменными, и узнаем, зачем вообще нужны функции.
def.Функция — это именованный блок кода, который выполняет определённую задачу. Функцию можно вызывать многократно, передавая ей разные данные.
Представь функцию как рецепт приготовления блюда: один раз написал инструкцию, а потом можешь готовить это блюдо снова и снова, просто следуя рецепту.
defЧтобы создать функцию, используется ключевое слово def (от англ. define — определять), за которым следует имя функции и круглые скобки:
def greet():
print("Привет, мир!")
greet() # Вызов функцииdef say_hello():
print("Привет!")
print("Как дела?")
say_hello() # Вызов функции
say_hello() # Можно вызвать ещё раз
# Вывод:
# Привет!
# Как дела?
# Привет!
# Как дела?def calculate_sum():
a = 5
b = 3
result = a + b
print(f"Сумма: {result}")
calculate_sum()
# Вывод:
# Сумма: 8Переменные, определённые вне функций, называются глобальными. Они доступны везде в программе:
name = "Анна" # Глобальная переменная
def greet():
print(f"Привет, {name}!") # Используем глобальную переменную
greet()
# Вывод:
# Привет, Анна!Переменные, определённые внутри функции, называются локальными. Они существуют только внутри функции:
def calculate():
x = 10 # Локальная переменная
y = 20 # Локальная переменная
print(x + y)
calculate()
# print(x) # Ошибка! x не существует вне функцииx = 5 # Глобальная переменная
def change_x():
x = 10 # Локальная переменная (новая!)
print(f"Внутри функции: {x}")
change_x()
print(f"Вне функции: {x}")
# Вывод:
# Внутри функции: 10
# Вне функции: 5Вместо того чтобы писать один и тот же код несколько раз, можно написать функцию и вызывать её:
# Без функции (плохо)
print("Привет!")
print("Как дела?")
print("Привет!")
print("Как дела?")
print("Привет!")
print("Как дела?")
# С функцией (хорошо)
def greet():
print("Привет!")
print("Как дела?")
greet()
greet()
Функции помогают разбить большую программу на маленькие логические части:
def input_data():
name = input("Введите имя: ")
age = int(input("Введите возраст: "))
return name, age
def process_data(name, age):
if age >= 18:
status = "взрослый"
else:
status = "ребёнок"
return status
def output_data
Если что-то не работает, легче найти ошибку в одной функции, чем в большом куске кода.
Написал функцию один раз — используй её в разных местах программы или даже в других программах.
Что такое функция в программировании?
Что выведет этот код?
def print_message():
print("Hello, World!")
print_message()Что выведет этот код?
x = 5
def change_x():
x = 10
print(x)
change_x()
print(x)Создай функцию print_stars(), которая выводит строку из 10 звёздочек.
def print_stars():
print("*" * 10)
print_stars()
# Вывод:
# **********Создай функцию calculate_area(), которая вычисляет и выводит площадь квадрата со стороной 7.
def calculate_area():
side = 7
area = side ** 2
print(f"Площадь квадрата: {area}")
calculate_area()
# Вывод:
# Площадь квадрата: 49Что выведет этот код?
name = "Петя"
def greet():
print(f"Привет, {name}!")
greet()def.: после def — программа завершится ошибкой или даст неверный результат.Создай функцию print_hello(), которая выводит строку "Привет!". Вызови эту функцию три раза.
Создай функцию print_name(), которая выводит твоё имя. Используй глобальную переменную name для хранения имени.
Создай функцию calculate_square(), которая вычисляет и выводит площадь квадрата со стороной 5.
Создай функцию print_line(), которая выводит строку из 20 дефисов: --------------------.
Создай функцию calculate_perimeter(), которая вычисляет и выводит периметр прямоугольника со сторонами 8 и 12.
Создай функцию print_info(), которая выводит информацию о тебе:
Используй глобальные переменные для хранения этой информации.
Создай функцию draw_rectangle(), которая выводит прямоугольник из символов * размером 5 на 3 (5 символов в ширину, 3 строки в высоту).
Создай функцию print_multiplication_table(n), которая выводит полную таблицу умножения от 1 до n (все пары i×j для i, j от 1 до n).
Создай функцию factorial(n), которая возвращает n! (1×2×…×n). Реализуй через рекурсию: factorial(n) = n * factorial(n-1), factorial(0) = 1.