为什么我的函数没有返回值?

时间:2015-11-08 04:55:13

标签: python python-2.7

duration=input("Enter day duration here:")
amount=input("Enter the amount here:")

def make_decision(duration,amount):

    if (duration<=0 or amount <=0):
        print "Invalid value"
    elif (duration<30):
        if (amount>=50):
            corresponding_value = "Medium"

        elif (amount<50):
            corresponding_value = "Low"

    elif (duration>=30):
        if (amount>=50):
            corresponding_value = "High"
        elif (amount<50):
            corresponding_value = "High"

    return corresponding_value

make_decision(duration,amount)

我不明白为什么请帮助!当我运行它时,它只是在获得输入后结束。 我修复了不计算间隔,但它仍然是相同的!

2 个答案:

答案 0 :(得分:1)

你的函数返回值正常,但你错过的是当你从函数返回一个值时,你必须在某个变量中收集该值并相应地使用它,或者你可以在之前使用print语句打印它函数调用。

更新后的代码如下:

duration=input("Enter day duration here:")
amount=input("Enter the amount here:")

def make_decision(duration,amount):

    if (duration<=0 or amount <=0):
        print "Invalid value"
    elif (duration<30):
        if (amount>=50):
            corresponding_value = "Medium"

        elif (amount<50):
            corresponding_value = "Low"

    elif (duration>=30):
        if (amount>=50):
            corresponding_value = "High"
        elif (amount<50):
            corresponding_value = "High"

    return corresponding_value

# this is one option
print make_decision(duration,amount)
# another option could be
# result = make_decision(duration, amount)
# print result

答案 1 :(得分:1)

正如Tarun所描述的那样,你的函数返回一个值而不是打印。使用

print corresponding_value

而不是返回。因此,当您使用

调用该函数时
make_decision(duration,amount)

您将在控制台中打印输出。

另一种方法是

print make_decision(duration,amount)

还有其他方法。

此外,在你的功能的第二部分

if (amount>=50):
        corresponding_value = "High"
 elif (amount<50):
        corresponding_value = "High"

可能有一些拼写错误。两个案例都打印相同的文字。如果您需要打印相同的文本“高”,持续时间> = 30且金额&gt; 0,然后不需要elif条件。更好的写作方式是:

def make_decision(duration,amount):

if (duration<=0 or amount <=0):
    print "Invalid value"
elif (duration<30):
    if (amount>=50):
        corresponding_value = "Medium"

    elif (amount<50):
        corresponding_value = "Low"
else:
        corresponding_value = "High"
print corresponding_value    

make_decision(持续时间,数量)