我正在尝试使用 return 语句。如果 y 为负数,则程序将终止。但它显示“ValueError:数学域错误”
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:数学域错误”
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
我有这种感觉,你想将你的日志调用包含在 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)
要让你的函数返回一个值,你必须指定它应该返回什么。否则返回无
Return 将控制权交还给调用者。在这种情况下,如果您想获取函数的值,则需要调用它,并且需要该函数实际返回一些内容。也许是这样的:
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]
... 将 [something] 替换为要返回其值的值或变量。math.log 返回其参数的对数。您已经知道如何保存函数的返回值:
您希望这会导致程序退出。如果从 main 方法使用,即在任何函数之外,返回只会退出程序。Return 将控制权交还给调用例程(如果没有调用例程,则程序退出)。您可能想改用 exit 调用:
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
你的回报是空的......在“回报”的同一行上没有变量名或值。例如,如果您想返回值 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)
正如我在编程中学到的那样,任何功能都需要 3 个部分:
(1)输入,当你“定义”一个函数时,你需要知道你想把什么放入函数中。
例如:
def function (input1, input2):
我们还将这些输入称为参数。
(2) 你需要显示输出:
例如,在您提供的代码中,如果您想返回变量“result”持有的数字,您可以执行以下操作:
return result
或者,如果您不想返回或输出任何内容,您可以执行以下操作:
return None
在 python 中,None 没有任何意义,至少你现在可以这么想。
(3)功能就是为你做事,所以之间的事
def function(inputs):
到
return None
是您必须将变量从输入修改为返回(或输出)。
希望它有所帮助,并且总是在提出任何问题之前工作。祝你在 Python 上好运