NameError: name hi is not defined

w1rox

Новичок
Пользователь
Ноя 4, 2020
3
0
1
OS Android 9
IDE Qpython 2.7

def repeat():
global a
a = input("Write any word\n")
return a

print(repeat())

После ввода, ругается что введенное переменная не определена. Сильно не пинайте, новенький в python dev.
PS в Python 3 этот код работает
 

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
глобальную переменную нужно объявить до функции, а в функции уже указать, что эту переменную можно менять из этой функции.
 
  • Мне нравится
Реакции: w1rox

w1rox

Новичок
Пользователь
Ноя 4, 2020
3
0
1
глобальную переменную нужно объявить до функции, а в функции уже указать, что эту переменную можно менять из этой функции.

"а в функции уже указать, что эту переменную можно менять из этой функции" - это нужно понимать, что переменной мы присваеваем новое значение внутри функции?
 

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
это относится к области видимости переменных, та переменная, что объявляется внутри функции - внутри нее и остается, вы же хотите глобальную переменную, поэтому она объявляется вне функции, но чтобы функция могла изменять глобальную переменную - global a
 

w1rox

Новичок
Пользователь
Ноя 4, 2020
3
0
1
это относится к области видимости переменных, та переменная, что объявляется внутри функции - внутри нее и остается, вы же хотите глобальную переменную, поэтому она объявляется вне функции, но чтобы функция могла изменять глобальную переменную - global a
Можно пожалуйста код для примера?
Заранее спасибо )
 

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
пожалуйста, но кода не будет. просто почитайте об области видимости.
 

Форум IT Специалистов