我有以下代碼:如何從函數中返回一個值並將其打印在python的while循環中?
A = 3
def Calculation():
global A
B = 2 * A
return B
print B
我得到的錯誤:
NameError: name 'B' is not defined
如何解決這個問題?什麼是正確的代碼?提前致謝!
我有以下代碼:如何從函數中返回一個值並將其打印在python的while循環中?
A = 3
def Calculation():
global A
B = 2 * A
return B
print B
我得到的錯誤:
NameError: name 'B' is not defined
如何解決這個問題?什麼是正確的代碼?提前致謝!
你可以簡單地打印您的函數調用,像這樣::
A = 3
def Calculation(a):
B = 2 * A
return B
print Calculation(A)
你得到那個B在沒有定義錯誤的原因是因爲你的變量B是一個局部變量的函數計算。其範圍僅在該方法中可見。
解釋這裏的答案:這就是所謂的「範圍」。每個函數都有自己的範圍,B在該範圍內定義,因此不在父範圍內。 – Draco18s
A = 3
def Calculation():
global A
B = 2 * A
return B
B = Calculation()
print B
你能解釋一下你的代碼嗎?! – Cleb
A = 3,定義了一個聲明語句,您可以在其中修復A的值並將其用作全局變量。在此之後,您將沒有參數的方法Calculation()定義爲輸入,此函數將始終返回您B(在函數內定義)。爲了使用方法計算,您需要使用返回變量B = Calculation()來調用它。接下來,您將使用打印方法檢查變量B. –
你的例子沒有任何意義。
無論是打印函數的返回值...
A = 3
def Calculation():
global A
B = 2 * A
return B
print Calculation()
或者不使用功能:
A = 3
B = 2 * A
print B
或者在全球化的功能B
以及之前調用該函數打印B
:
A = 3
def Calculation():
global A, B
B = 2 * A
Calculation()
print B
儘管您不需要使用全局變量A
,但應該將其作爲參數傳遞給Calculation
。例如:
A = 3
def Calculation(a):
B = 2 * A
return B
print Calculation(A)
你也應該使用功能「蛇案」的名字(全部小寫,單獨的詞用下劃線「_
」)。
如何使你的代碼示例可以寫成最好的(在我看來)是:
a = 3
def calculation(factor):
return = 2 * factor
print calculation(a)
我不認爲downvoting新人的用戶是個不錯的主意。教他們如何工作更好。 – felipsmartins
請閱讀:http://stackoverflow.com/help/mcve – felipsmartins