Функции в Python
Функция в Python — это блок кода, который выполняет определённую задачу и может быть вызван в любой точке программы. Функции позволяют делать код более организованным и переиспользуемым.
Создание функции
Для создания функции используется ключевое слово def
. Вот пример простейшей функции:
def greet(): print("Привет, мир!")
Вызов функции
greet() # Привет, мир!
Функции с параметрами
Функции могут принимать параметры, которые передаются при вызове функции:
def greet(name):
print(f"Привет, {name}!")
greet("Алиса") # Привет, Алиса!
Возврат значений из функции
Функции могут возвращать значения с помощью ключевого слова return
:
def add(a, b):
return a + b
result = add(3, 4)
print(result) # 7
Функции с значениями по умолчанию
Можно задавать значения по умолчанию для параметров:
def greet(name="Мир"): print(f"Привет, {name}!") greet() # Привет, Мир! greet("Алиса") # Привет, Алиса!
Возврат нескольких значений
Функция может возвращать несколько значений, упакованных в кортеж:
def get_coordinates():
return 10, 20
x, y = get_coordinates()
print(x, y) # 10 20
Рекурсивные функции
Функции могут вызывать сами себя — это называется рекурсия. Пример: вычисление факториала:
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
print(factorial(5)) # 120
Примечания
- Функции делают код более организованным и переиспользуемым.
- Рекомендуется использовать функции для часто повторяющихся операций.
- Используйте
return
, чтобы передавать результат работы функции обратно.
Переменные в Python: Локальные и Глобальные
В Python переменные могут быть как локальными, так и глобальными, в зависимости от того, где они объявлены и используются. Понимание различий между ними важно для правильного управления данными в программе.
Локальные переменные
Локальные переменные — это переменные, которые объявляются внутри функции и доступны только в этой функции. Они не могут быть использованы за пределами функции, в которой они были созданы.
def example_function(): local_var = "Я локальная переменная" print(local_var) example_function() # Я локальная переменная # print(local_var) # Ошибка: local_var не существует за пределами функции
Глобальные переменные
Глобальные переменные — это переменные, которые объявляются за пределами всех функций и доступны для чтения и изменения в любом месте программы.
global_var = "Я глобальная переменная"
def example_function():
print(global_var)
example_function() # Я глобальная переменная
Использование глобальных переменных внутри функций
Чтобы изменить глобальную переменную внутри функции, нужно использовать ключевое слово global
. Без этого ключевого слова Python будет создавать новую локальную переменную, а не изменять глобальную.
global_var = "Я глобальная переменная" def change_global(): global global_var global_var = "Я измененная глобальная переменная" print(global_var) # Я глобальная переменная change_global() print(global_var) # Я измененная глобальная переменная
Пример неправильного использования global
Если забыть ключевое слово global
, Python создаст новую локальную переменную:
global_var = "Я глобальная переменная"
def wrong_usage():
global_var = "Я локальная переменная"
wrong_usage()
print(global_var) # Я глобальная переменная
# глобальная переменная не изменится, так как была создана новая локальная переменная
Область видимости переменных
Область видимости — это область программы, в которой можно использовать переменную. В Python существуют следующие области видимости:
- Локальная область видимости: Переменные, объявленные внутри функции, доступны только внутри этой функции.
- Область видимости функции: Переменные, объявленные в теле функции, доступны только в этой функции и её внутренних областях.
- Глобальная область видимости: Переменные, объявленные в основной части программы, доступны в любой функции (если они не переопределены).
Пример области видимости
x = 10 # глобальная переменная def test_scope(): x = 20 # локальная переменная print(x) test_scope() # 20 print(x) # 10 # глобальная переменная не изменена
Рекомендации
- Старайтесь минимизировать использование глобальных переменных, чтобы избежать ошибок при изменении их значений.
- Используйте локальные переменные в функциях для обеспечения инкапсуляции данных.
- Для работы с глобальными переменными внутри функций всегда используйте ключевое слово
global
.