如何在多行上返回多个值

2024-10-01 13:31:19 发布

您现在位置:Python中文网/ 问答频道 /正文

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

def exampleReturn():
    x = 'Hello'
    y = 'World'
    return (x,y)  #('Hello', 'World')

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

^{pr2}$

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


Tags: 方法字符串代码示例helloworldreturndef
3条回答

在交互式提示中可以看到两种类型的输出,对应于

  1. {what,what the Evaluation
  2. 打印到stdout,无论obj.__str__()返回什么(当您调用print(obj)时)

在你的问题中,你看到的是第一个问题。如果您想显示一个换行符,您需要关注print()ing。有很多方法可以做到这一点。一种可能是

In [453]: x = exampleReturn()
In [454]: print(*x,sep="\n")
hello
world

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

返回值通常从不显示。它们在那里供你捕捉变量。在

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

'foo,bar'.split(',')

返回值被丢弃了。这个脚本的可视化输出将是空的。在

为了使用返回值执行某些操作,您需要将它们捕获到变量中,或者将它们直接传递给其他对象:

^{pr2}$

这将捕获变量x中返回的列表,然后可以使用该变量。在

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

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

# or directly:
print('foo,bar'.split(','))

这就是返回值的全部方法。在

{{1}通常返回一个值^在交互控制台中返回一个更好的值^,除非^在控制台中返回一个更好的值。这就是为什么在交互式Python控制台中,可以得到以下输出:

>>> 'foo,bar'.split(',')
['foo', 'bar']

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

如果您想要特定的输出,那么您应该自己打印:

>>> x = 'foo,bar'.split(',')
>>> print('\n'.join(x))
foo
bar

继续返回一个元组(只返回数据);这是一个比在exampleReturn()中进行打印格式更好的设计选择,因为它允许您以后更改打印格式。然后,在其他地方,只需:

print("\n".join(exampleReturn()))

如果exampleReturn()返回数字而不是字符串,请执行以下操作:

^{pr2}$

相关问题 更多 >