2016-12-28 2 views
1

Код:ошибка Python - UnboundLocalError: локальная переменная 'х' обращаться до присвоения

x=0 
def ex(): 
u= input (': ') 
if u =='a': 
    print ('okay') 
    x = x + 1 
ex() 

ошибка:

Traceback (most recent call last): 
    File "<pyshell#3>", line 1, in <module> 
    ex() 
    File "<pyshell#2>", line 5, in ex 
    x = x + 1 
UnboundLocalError: local variable 'x' referenced before assignment 

Это то, что я получаю. Я понятия не имею, что случилось. Заранее спасибо

ответ

0

Ваша проблема в строке x = x + 1. Вы получаете эту ошибку, потому что вы уже определили переменную x в первой строке своего кода x=0, а когда вы делаете x = x + 1 внутри функции ex(), вы должны сообщить python, что вы изменяете глобальную переменную, определенную вне функции, используя зарезервированное ключевое слово global.

Размещение global x Перед x = x + 1 будет исправить вашу проблему, но x = x + 1 он не оказывает никакого влияния на вашей ex() функции, так что было бы лучше, если вы просто удалите эту строку из вашего ex() функции.

x=0 
def ex(): 
    u= input (': ') 
    if u =='a': 
     print ('okay') 
     global x  <-------add this line 
     x = x + 1 
ex() 
+0

Это сработало, спасибо –

Смежные вопросы