我试图在Python中使用“return”语句它不起作用。

时间:2012-06-21 15:38:25

标签: return python-2.7

我正在尝试使用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

4 个答案:

答案 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