Параметры и аргументы функций. Локальные и глобальные переменные. Урок 14

Конспект урока
Элективный курс: Основы программирования на Python
Уровень: Программирование для начинающих

1. параметры и аргументы функций

Часто функция используется для обработки данных, полученных из внешней для нее среды (основной ветки программы). Данные передаются функции при ее вызове в скобках и называются аргументами. Однако, чтобы функция могла «взять» передаваемые ей данные, необходимо при ее создании указать параметры-переменные (тоже в скобках).

Аргументы и параметры: передача данных в функцию

Когда функция вызвана, значения конкретных аргументов «подставляются» вместо параметров. Количество аргументов и параметров должно совпадать (не всегда: можно запрограммировать переменное количество принимаемых аргументов). В качестве аргументов могут выступать как конкретные значения, так и переменные.

2. локальные и глобальные переменные

Если вы напишете в IDLE выражения, приведенные в примере выше, а затем попробуете вывести значения переменных, то увидите следующую картину:

Недоступность локальных переменных

Переменные num1 и num2 не изменили своих первоначальных значений. Дело в том, что в функцию передавались копии значений, а не оригиналы. А вот переменных a и b оказывается нет и в помине (надпись «name 'b' is not defined» переводится как «переменная b не определена»). Данные переменные существуют лишь в момент выполнения функции и называются локальными. В противовес им, переменные num1 и num2 видны не только во внешней ветке, но и внутри функции:

Доступность глобальных переменных

Переменные, определенные за пределами функций, является глобальными.

3. задания по программированию

1. Создайте функцию:

def func1(num):
     n = num * 5
     print (n)

2. Вызовите предыдущую функцию, передав ей в качестве аргумента значение какой-нибудь глобальной переменной, затем любое число и, наконец, любую строку.

3. Выполните с помощью интерпретатора Python скрипт, предварительно исправив код функции так, чтобы переменная num ссылалась на новое число:

def func2 (a):
     b = 10
     if a < 3:
          a = a * 10
 
num = 1
num = func2 (num)
num