Python 如何在多行上返回多个值
我想知道是否有一种方法可以返回多个值并在两行或多行之间隔开。我当前的示例代码:Python 如何在多行上返回多个值,python,python-3.x,Python,Python 3.x,我想知道是否有一种方法可以返回多个值并在两行或多行之间隔开。我当前的示例代码: def exampleReturn(): x = 'Hello' y = 'World' return (x,y) #('Hello', 'World') 目前,它只返回元组中的x和y。但是,我想知道是否有办法在两行上返回这两个值,如下所示: exampleReturn() >>>'Hello' 'World' 像上面的例子一样,我希望它们作为字符串而不是元
def exampleReturn():
x = 'Hello'
y = 'World'
return (x,y) #('Hello', 'World')
目前,它只返回元组中的x和y。但是,我想知道是否有办法在两行上返回这两个值,如下所示:
exampleReturn()
>>>'Hello'
'World'
像上面的例子一样,我希望它们作为字符串而不是元组放在单独的行上,并且两行的起始位置相同。继续返回元组(仅返回数据);这是一个比在exampleReturn()
中进行打印格式化更好的设计选择,因为它允许您以后更改打印格式。然后,在其他地方,只需做:
print("\n".join(exampleReturn()))
如果exampleReturn()
返回数字而不是字符串,请执行以下操作:
print("\n".join([str(x) for x in exampleReturn()]))
您对返回值有一个根本性的误解。返回值是从函数返回的东西;它可以是任何类型的对象:字符串、整数、元组、列表或某些复杂对象。没关系 返回值通常从不显示。它们是供您在变量中捕获的 例如,
str.split()。如果在Python脚本中像这样使用它,则不会得到任何结果:
'foo,bar'.split(',')
返回值被丢弃了。这个脚本的视觉输出将是空的
为了处理返回值,您需要在变量中捕获它们,或者直接将它们传递给其他对象:
x = 'foo,bar'.split(',')
这将捕获变量x
中返回的列表,然后可以使用该变量
如果要显示返回值,需要打印它:
x = 'foo,bar'.split(',')
print(x)
# or directly:
print('foo,bar'.split(','))
这就是返回值的全部内容
现在,在交互式控制台a中,为了获得更好的反馈,控制台通常会显示您执行的操作的返回值(除非返回值为None
)。这就是为什么在交互式Python控制台中,您会得到以下输出:
>>> 'foo,bar'.split(',')
['foo', 'bar']
该['foo','bar']
是split
调用的返回值,因此它不会自动显示。交互式控制台将获取否则丢弃的返回值并显示它。但这完全是交互式控制台的一个功能,我们无法影响它。我们甚至不能指望它发生
如果需要某个输出,则应自己打印:
>>> x = 'foo,bar'.split(',')
>>> print('\n'.join(x))
foo
bar
在对应于的交互式提示中,您可以看到两种类型的输出
求值,无论什么obj.\uuu repr\uuu()
返回(当您只需按Enter键时)
打印到stdout
,无论什么obj.\uu str\uu()
返回(当您调用print(obj)
时)
在你的问题中,你看到的是第一个问题。如果要显示换行符,,则需要考虑打印()。有很多方法可以做到这一点。一种可能是,
In [453]: x = exampleReturn()
In [454]: print(*x,sep="\n")
hello
world
最简单、最好的方法是将该函数返回到列表或其他内容中,然后尝试以您想要的方式打印列表返回值与显示值无关。如果你想打印,那就打印。你想要什么?您希望返回值是一个元组并以不同方式显示它,还是希望返回值是一个带换行符的字符串?很抱歉我的问题模棱两可。刚刚编辑过。我希望它是一个带换行符的字符串。返回值仅在交互式控制台中显示以方便使用。但这只是交互式REPL的一个功能。这不是你能影响的任何事情。如果您想显示某些内容,请将其打印出来。下面的答案更合适,但您也可以将字符串打包为\n
,并将其作为一个值返回:return“\n”。加入(x,y)
非常感谢您的深刻回答。很明显,正如你所说,我没有真正理解“退货”和“打印”之间的区别。同样,我一直在使用控制台来尝试和错误我的所有代码,所以我也误解了关于“丢弃”返回值的部分。