Return 并在函数中打印

Return and print in functions

请问return和print的区别

def x(n):
    a=1
    print a,n,
    return a
print x(2)

如果我输入 x(2) 它将在控制台上输出:1 2 对吗?
仅当我键入 print x(2) 时才第二次打印变量 a 吗?

当你写

print X(2)

然后函数 X 以 2 作为参数被调用,让我们进入其中:

a=1
print a,2,
return a

它会打印 1 和 2,然后它 returns a 的值为 1。

返回值 (1) 在您编写 print X(2) 后得到打印。

如果你写了X(2)(没有print),你会打印出12,并且返回值不会被使用。

def x(n):
    print n+1

现在,当调用 x(5) 时,它会将 6 打印到控制台。但是,如果您执行 y=x(5)y 的值将是 None

现在:

def x(n):
    return x+1

如果您调用 x(5),它仍会向控制台打印 6。但是,如果你做了 y=x(5)y 的值将是 6,而不是 None

两者看似做的事情很相似,其实大不相同

大多数时候,您将使用 return 作为函数的输出。使用 print 意味着:将某些内容打印为字符串(可能打印到文件或解释器等)。

此外,您不能对函数打印的值执行任何操作。 Return输入值在这方面可为您提供更多信息,因为它 "garbage collected" 不像印刷值。

Return 也允许你跳出一个函数。

>>> def x(y):
...     squared = y ** 2
...     return squared
... 
>>> x(2)
4
>>> z = x(2)
>>> z
4
>>> def a(b):
...     squared = b ** 2
...     print(squared)
... 
>>> a(2)
4
>>> c = a(2)
4
>>> c
>>>

在这个例子中,我有两个函数:x 和 a。两者都采用一个位置参数和 return 或打印该值的平方。

请注意,如果我将带有参数的函数分配给变量,我可以 return 通过使用函数 return 调用变量而不是打印函数来调用该值值。