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