为什么我的函数不返回值,但是如果使用print,它就可以工作?

时间:2019-06-26 17:24:18

标签: python

我正在学习function()并编写练习。

输入整数后什么也没返回。

def collatz(number):
    if number%2==0:
        return (number//2)
    if number%2==1:
        return (3*number+1)

userInput=int(input('Enter an integer: '))
collatz(userInput)

但是,如果我将“ return”语句替换为“ print”,它将起作用。我看过一个在函数中使用“ return”语句返回不同字符串的示例。 “ return”只能用于返回字符串吗?如果我需要返回计算值,必须使用“打印”吗?预先谢谢你!

2 个答案:

答案 0 :(得分:1)

您的函数正在返回一个值,但是由于您没有要求打印该值,因此未打印该值。

尝试这样的事情:

def foo():
    return 5

print(foo())

答案 1 :(得分:1)

您正在调用函数,但未使用返回值:

collatz(userInput)

您可以将return的结果保存在变量中,然后打印出来

value = collatz(userInput)
print (value)

或直接打印:

print (collatz(userInput))

完整代码:

def collatz(number):
    if number%2==0:
        return (number//2)
    if number%2==1:
        return (3*number+1)

userInput=int(input('Enter an integer: '))
print (collatz(userInput))