Область видимості змінної
Останнє оновлення 2025-10-12 | Редагувати цю сторінку
Приблизний час: 20 хвилин
Огляд
Питання
- Як насправді виклики функцій працюють?
- Як можна визначити, де виникають помилки?
Цілі
- Визначення локальних і глобальних змінних.
- Ідентифікація параметрів як локальних змінних.
- Аналіз звіту системної діагностики (traceback) та визначення файлу, функції й номера рядка, у якому сталася помилка, а також типу помилки й тексту повідомлення про неї.
Область змінної - це частина програми, яка може “бачити” цю зміну.
- There are only so many sensible names for variables.
- People using functions shouldn’t have to worry about what variable names the author of the function used.
- People writing functions shouldn’t have to worry about what variable names the function’s caller uses.
- Частина програми, в якій змінна є видимою, називається її областю.
-
pressure
– це глобальна змінна.- Визначається поза будь-якою конкретною функцією.
- Є видимою у будь-якому місці програми.
-
t
andtemperature
are local variables inadjust
.- Визначені всередині функції.
- Не є видимими у головній програмі.
- Нагадування: параметр функції – це змінна, якій автоматично присвоюється значення під час виклику функції.
ВИХІД
adjusted: 0.01238691049085659
ПОМИЛКА
Traceback (most recent call last):
File "/Users/swcarpentry/foo.py", line 8, in <module>
print('temperature after call:', temperature)
NameError: name 'temperature' is not defined
Читання повідомлень про помилки
Read the traceback below, and identify the following:
- Скільки рівнів має системна діагностика?
- Як називається файл, у якому сталася помилка?
- Як називається функція, у якій сталася помилка?
- В якому рядку цієї функції виникла помилка?
- Який тип помилки?
- Яке повідомлення про помилку?
ПОМИЛКА
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-2-e4c4cbafeeb5> in <module>()
1 import errors_02
----> 2 errors_02.print_friday_message()
/Users/ghopper/thesis/code/errors_02.py in print_friday_message()
13
14 def print_friday_message():
---> 15 print_message("Friday")
/Users/ghopper/thesis/code/errors_02.py in print_message(day)
9 "sunday": "Aw, the weekend is almost over."
10 }
---> 11 print(messages[day])
12
13
KeyError: 'Friday'
Три рівні.
errors_02.py
print_message
Рядок 11
KeyError
. Ці помилки виникають при спробі звернутися до ключа, який не існує (зазвичай в структурі даних на кшталт словника). We can find more information about theKeyError
and other built-in exceptions in the Python docs.KeyError: 'Friday'
- Область змінної - це частина програми, яка може “бачити” цю зміну.