Основы программирования на Python Параметры и аргументы функцийЧасто функция используется для обработки данных, полученных из внешней для нее среды (из основной ветки программы). Данные передаются функции при ее вызове в скобках и называются аргументами. Однако, чтобы функция могла "взять" передаваемые ей данные, необходимо при ее создании описать параметры (в скобках после имени функции), представляющие собой переменные. ![]() Когда функция вызывается, конкретные аргументы подставляются вместо параметров-переменных. Почти всегда количество аргументов и параметров должно совпадать (хотя можно запрограммировать переменное количество принимаемых аргументов). В качестве аргументов могут выступать как непосредственно значения, так и переменные, ссылающиеся на них. Локальные и глобальные переменныеЕсли записать в 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 >>> Переменные num1 и num2 не изменили своих первоначальных значений. Дело в том, что в функцию передаются копии значений. Прежние значения из основной ветки программы остались по прежнему связанны с их переменными. А вот переменных 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 # Почему с переменной не связано никакого значения? >>> |
|||



хм...а действительно, почему?
почему? не пойму, обьясните!
Фукнция ничего не
Фукнция ничего не возвращает.
Должно быть примерно так: