Параметры и аргументы функций. Локальные и глобальные переменныею.
Параметры и аргументы функций
Часто функция используется для обработки данных, полученных из внешней для нее среды (из основной ветки программы). Данные передаются функции при ее вызове в скобках и называются аргументами. Однако, чтобы функция могла "взять" передаваемые ей данные, необходимо при ее создании описать параметры (в скобках после имени функции), представляющие собой переменные.Локальные и глобальные переменные
Если записать в IDLE приведенную ниже функцию, и затем попробовать вывести значения переменных, то обнаружится, что некоторые из них почему-то не существуют:>>> def mathem(a,b): a = a/2 b = b+10 print(a+b) >>> num1 = 100 >>> num2 = 12 >>> mathem(num1,num2) 72.0 >>> num1 100 >>> num2 12 >>> a Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> a NameError: name 'a' is not defined >>> b Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> b NameError: name 'b' is not defined >>>
А вот переменных a и b оказывается нет и в помине (ошибка "name 'b' is not defined" переводится как "переменная b не определена"). Эти переменные существуют лишь в момент выполнения функции и называются локальными. В противовес им, переменные num1 и num2 видны не только во внешней ветке, но и внутри функции:
>>> def mathem2(): print(num1+num2) >>> mathem2() 112 >>>
Практическая работа
1. Создайте функцию:def func1(num): n = num * 5 print (n)
Вызовите ее, передав в качестве аргумента значение глобальной переменной, затем любое число и, наконец, любую строку. 2. Выполните с помощью интерпретатора Python скрипт, предварительно исправив код функции так, чтобы она возвращала значение переменной n:
>>> def func(n): if n < 3: n = n*10 >>> a = 2 >>> b = func(a) >>> a 2 >>> b # Почему с переменной не связано никакого значения? >>>