如何在多行中返回多个值

Yux*_*xie 0 python python-3.x

我想知道是否有一种方法可以返回多个值并将其间隔在 2 行或更多行之间。我当前的示例代码:

def exampleReturn():
    x = 'Hello'
    y = 'World'
    return (x,y)  #('Hello', 'World')
Run Code Online (Sandbox Code Playgroud)

目前,这只是在元组中返回 x 和 y。但是,我想知道是否有办法在这样的两行上返回这两个值:

 exampleReturn()
 >>>'Hello'
    'World'
Run Code Online (Sandbox Code Playgroud)

像上面的例子一样,我希望它们作为字符串而不是元组在单独的行上,并且两行都从相同的位置开始。

pok*_*oke 5

您对什么是返回值存在根本性的误解。返回值是从函数返回的东西;它可以是任何类型的对象:一个字符串、一个整数、一个元组、一个列表、一些复杂的对象。没关系。

通常从不显示返回值。它们可供您在变量中捕获。

例如,str.split()拆分一个字符串并返回一个部分列表。如果你在 Python 脚本中像这样使用它,你不会得到任何东西:

'foo,bar'.split(',')
Run Code Online (Sandbox Code Playgroud)

返回值只是被扔掉了。此脚本的视觉输出将为空。

为了对返回值做一些事情,你需要将它们捕获到一个变量中,或者直接将它们传递给其他东西:

x = 'foo,bar'.split(',')
Run Code Online (Sandbox Code Playgroud)

这将在x您可以使用的变量中捕获返回的列表。

如果要显示返回值,则需要打印它:

x = 'foo,bar'.split(',')
print(x)

# or directly:
print('foo,bar'.split(','))
Run Code Online (Sandbox Code Playgroud)

这就是返回值的全部内容。

现在,在交互式控制台REPL 中,为了获得更好的反馈,控制台通常会显示您执行的事物的返回值(除非返回值为None)。这就是为什么在交互式 Python 控制台中,您会得到以下输出:

>>> 'foo,bar'.split(',')
['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)

['foo', 'bar']split调用的返回值,因此不会自动显示。交互式控制台将采用其他方式丢弃的返回值并显示它。但这完全是交互式控制台的一项功能,而不是我们可以影响的。我们甚至不能指望它发生。

如果你想要某个输出,那么你应该自己打印它:

>>> x = 'foo,bar'.split(',')
>>> print('\n'.join(x))
foo
bar
Run Code Online (Sandbox Code Playgroud)