我想使用return語句。如果y是負數,則程序將終止。但它顯示「ValueError:數學域錯誤」我想在Python中使用「return」語句,它不起作用。
import math
y=-5
def df(y):
if y<=0:
print y, "is negative"
return
result = math.log(y)
print "The log of y is",result
我想使用return語句。如果y是負數,則程序將終止。但它顯示「ValueError:數學域錯誤」我想在Python中使用「return」語句,它不起作用。
import math
y=-5
def df(y):
if y<=0:
print y, "is negative"
return
result = math.log(y)
print "The log of y is",result
你的回報是空的....沒有與「迴歸」在同一行沒有變量名或值。例如,如果你想返回值5,你就會把
return 5
如果你想返回一個變量foo的,你就會把
return foo
現在你正在返回什麼。
也許你想要這樣?
import math
y=-5
def df(y):
if y<=0:
print y, "is negative"
return "impossible to calculate"
result = math.log(y)
return result
print "The log of y is", df(y)
使用此代碼時,它顯示「返回」功能外。正在發生的第8行 – Soumyajit
編輯。我更喜歡perl,所以我更頻繁地使用它,忘記了這些嚴格的格式化的東西。 – PinkElephantsOnParade
感謝PinkElephantsOnParade提供幫助 – Soumyajit
返回控制權返回給調用者。在這種情況下,如果你想獲得函數的值,你需要調用它,並且你需要函數實際返回一些東西。也許沿着這些線:
import math
def df(v):
if v <= 0:
print v, "is negative"
return
y = -5
df(y)
result = math.log(y)
print "The log of y is",result
雖然我不確定你想要做什麼。如果你想你的函數返回的東西,你可以使用這個語法:
return [something]
...與值或變量要返回其值替換[東西。 math.log返回其參數的對數。您已經知道如何保存函數的返回值:
您希望這會導致程序退出。如果從主方法使用,即在任何功能之外,返回將僅退出該程序。返回控制返回到調用例程(如果沒有調用例程,程序退出)。您可能需要使用出口調用來代替:
import sys
...
sys.exit(0)
sys.exit
將立即終止程序,通過提供的值返回給調用程序。如果你不知道這是什麼,你可以將該值設爲0
result = math.log(y)
至於你的錯誤信息,你不能把一個負數的對數,嘗試積極的來代替。 (不爲0或者)
我想你想是這樣的:
import math
def df(v):
if v <= 0:
print v, "is negative"
return True # returns true if the value is negative or zero
return False # otherwise returns false
y = -5
if df(y): # test if negative or positive, branch on return value
return # if value was negative or zero, return (exit program)
result = math.log(y)
print "The log of y is",result
我有這種感覺,你想包括DF()函數內部日誌呼叫,只檢查其負第一。
import math
y=-5
def df(y):
if y<=0:
print y, "is negative"
return
result = math.log(y)
return result
print "The log of y is", df(y)
要讓你的函數返回一個值,你必須指定它應該返回的值。否則返回無
啊,想想這也許就是他想要的 - 至少這是最有意義的 - 減去他會記錄NoneType(如果y是負數)的事實。 – PinkElephantsOnParade
雅我想爲代碼做出最小的改變,以解決特定的問題,而不是引入太多的新東西 – jdi
謝謝@jdi的幫助。 – Soumyajit
任何函數需要3個部分,因爲我學會了編程:
(1)輸入,爲你「高清」的功能,你需要知道你想放入的功能是什麼。
例如:
def function (input1, input2):
我們也稱這些投入爲參數。
(2)你需要顯示輸出:
例如,你提供,如果您想返回變量「結果」持有數量的代碼,你可以這樣做:
return result
,或者如果你不想返回,或輸出任何東西,你可以這樣做:
return None
在Python中,無意味着什麼,至少你能想到我現在就這樣。
(3)功能正在做的事情爲你,所以
之間def function(inputs):
到
return None
的事情是你要修改的輸入變量爲回報(或輸出)的內容。
希望它有幫助,並始終在提出任何問題之前工作。祝你好運在Python
你在哪裏調用你的函數? –
你應該編輯你的問題,這樣它就不會被忽略掉。拼寫,語法和標點符號都很重要。確保您閱讀編輯器提示,以便了解如何在帖子中使用代碼塊(在每個代碼行中添加4個空格)。請記住,如果你沒有費力問你的問題,人們就不會付出任何努力來回答它。歡迎來到stackoverflow。 – Wug
好吧,既然你是新手,你可以先閱讀有關格式的常見問題,我不認爲這是一個特殊的問題。鏈接是[這裏](http://stackoverflow.com/editing-help#comment-formatting) – windsound