</PKB>

Функции в 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

Примечания

Переменные в 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  # глобальная переменная не изменена

Рекомендации