簡體   English   中英

全局名稱“X”未定義

[英]Global name 'X' not defined

我查看了各種類似的問題,但是找不到符合我情況的問題(或者可能有一個,但我是編程的新手)。

我使用的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

你應該調用你的函數,否則不會定義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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM