2017-08-26 87 views
-2

我的代碼:爲什麼代碼拋出一個錯誤「變量」沒有定義

def divide(x,y): 

    div = divmod(x,y) 
    return div 

query = input("Enter numbers separated with a comma to divide: ") 
divide(int(query.split(',')[0]),int(query.split(',')[1])) 
print(div) 

爲什麼它拋出的錯誤:

NameError: name 'div' is not defined. 
+2

因爲它並不在該範圍存在。 –

+1

根據你的問題歷史來判斷,你已經使用了PHP一段時間了?它的工作方式完全相同。 https://ideone.com/v8aRCN – Ryan

+0

如果您想了解更多信息:http://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html – The4thIceman

回答

1

因爲div是一個局部變量,而且是本地到divide函數,所以它在其他地方都是未知的。您可以嘗試兩種:

  1. 調用打印功能內部的功能:

    def divide(x,y): 
        div = divmod(x,y) 
        return div 
    
    query = input("Enter numbers separated with a comma to divide: ") 
    print(divide(int(query.split(',')[0]),int(query.split(',')[1]))) 
    
  2. 或使用全局變量:

    def divide(x,y): 
        div = divmod(x,y) 
        return div 
    
    query = input("Enter numbers separated with a comma to divide: ") 
    div = divide(int(query.split(',')[0]),int(query.split(',')[1])) 
    print(div) 
    
+0

當你直接打印時,這不會消除函數divide()的用途嗎? 我想使用def – X10nD

+0

不,它不**,如果**你**只是**想要打印它。如果您想稍後使用,則使用第二種方法,即將其存儲在全局變量中。 –

+0

第二種方法不使用全局變量,它只是外部作用域中正常變量,它恰好與函數中的局部變量名稱相同。 – mkrieger1

0

因爲div是一個局部變量在函數divide中,並且您試圖將其作爲全局變量來訪問即

應的代碼是:

def divide(x,y): 
    div = divmod(x,y) 
    return div 

query = input("Enter numbers separated with a comma to divide: ") 
print(divide(int(query.split(',')[0]),int(query.split(',')[1]))) 
相關問題