2013-11-10 5 views
6

Я просмотрел все похожие вопросы, но просто не мог найти тот, который соответствовал моей ситуации (или, может быть, один, но я новичок в программировании).Глобальное имя 'X' не определено

Версия Python, который я использую 2.7.4, и я получаю в моей программе ошибка в строке 11: NameError: global name 'opp' is not defined

Я хотел сделать калькулятор для размеров полов. Вот мой код:

def oppervlakte(): 
    global lengte 
    global br 
    global opp 

    lengte = raw_input("Voer de lengte in: ") # Put in the length 
    br = raw_input("Voer de breedte in: ") # Put in the width 
    opp = lengte * br # Calculates the dimension of the floor 
    return int(lengte), int(br) # Makes the variables lengte & br an integer 

print opp 

Поскольку теперь я получил ответ, я хочу поделиться с вами, так вот она:

def oppervlakte(): 
    lengte = raw_input("Voer de lengte in: ") # Asks for the length 
    br = raw_input("Voer de breedte in: ") # Asks for the width 

    lengte = int(lengte) # String lengte --> int lengte 
    br = int(br) # String br --> int br 

    opp = lengte * br # Calculates the dimensions of the floor 

    return opp, lengte, br 

opp, lengte, br = oppervlakte() 
print "De oppervlakte is", opp # Prints the dimension 

ответ

9

Вы должны вызвать вашу функцию, в противном случае opp не будет определить.

oppervlakte() 
print opp 

Но лучше было бы вернуться opp из функции и присвоить переменной в глобальном пространстве имен.

def oppervlakte(): 
    lengte = int(raw_input("Voer de lengte in: ")) #call int() here 
    br = int(raw_input("Voer de breedte in: ")) # call int() here 
    opp = lengte * br # Calculates the dimension of the floor 
    return opp, lengte, br 

opp, lengte, br = oppervlakte() 

И просто звоню int() на строку не будет делать это целое число, вы должны присвоить возвращаемое значение переменной.

>>> x = '123' 
>>> int(x)  #returns a new value, doesn't affects `x` 
123 
>>> x   #x is still unchanged 
'123' 
>>> x = int(x) #re-assign the returned value from int() to `x` 
>>> x 
123 
Смежные вопросы