Python: Урок 14. Параметри і аргументи функцій. Локальні та глобальні змінні

Параметри і аргументи функцій

Часто функція використовується для обробки даних, отриманих із зовнішнього для неї середовища (з основної гілки програми). Дані передаються функції при її виклику в дужках і називаються аргументами. Однак, щоб функція могла "взяти" передані їй дані, необхідно при її створенні описати параметри (в дужках після імені функції), що представляють собою змінні.

Коли функція викликається, конкретні аргументи підставляються замість параметрів-змінних. Майже завжди кількість аргументів і параметрів має збігатися (хоча можна запрограмувати змінну кількість прийнятих аргументів). В якості аргументів можуть виступати як безпосередньо значення, так і змінні, що посилаються на них.

Локальні та глобальні змінні

Якщо записати в IDLE наведену нижче функцію, і потім спробувати вивести значення змінних, то виявиться, що деякі з них чомусь не існують:

Змінні num1 і num2 не змінили своїх початкових значень. Справа в тому, що у функцію передаються копії значень. Колишні значення з основної гілки програми залишилися по колишньому пов'язані з їх змінними.
>>> 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 # Чому з змінною не пов'язано жодного значення? 

Зміст курсу

Вступ
Урок 1. Історія мов програмування. Компіляція та інтерпретація
Урок 2. Знайомство з Python і середовищами програмування
Урок 3. Типи даних в програмуванні. Визначення змінної
Урок 4. Логічні вирази
Урок 5. Умовний оператор. Інструкція if
Урок 6. Множинне розгалуження
Урок 7. Цикл while
Урок 8. Введення даних з клавіатури
Урок 9. Рядки як послідовності символів
Урок 10. Списки - змінювані послідовності
Урок 11. Cловники
Урок 12. Цикл for
Урок 13. Функції
Урок 14. Параметри і аргументи функцій. Локальні та глобальні змінні
Урок 15. Перевірочна робота з основ програмування на Python

Коментарі

Популярні дописи з цього блогу

Азбука Морзе Українською

Python: Урок 3. Типи даних в програмуванні. Визначення змінної

Python: Урок 4. Логічні вирази