【发布时间】:2016-02-05 01:02:21
【问题描述】:
我是 python 新手,遇到了以下问题。我试图使用 return 从函数中获取两行文本,但仍将“\n”作为文本获取(在 IDLE 3.5 中)。当我将“return”更改为“print”时,一切正常,但我需要“return”。
def myfunc(a):
text1=["|"]
i=int(a)
mystr="abc|"*i+"\n"
text1.append(mystr)
text1=''.join(text1)
b="0"
text2=[b]
for b in range(i):
b+=1
text2.append("{0:5d}".format(b))
text1="".join((text1,"".join(text2)))
return(text1)
结果:
>>> myfunc(4)
'|abc|abc|abc|abc|\n0 1 2 3 4'
但是
(...)
print(text1)
>>> myfunc(4)
abc|abc|abc|abc|
0 1 2 3 4
【问题讨论】:
-
我认为您误解了它的工作原理。
return为您提供字符串文字。它是在两行(例如,如果您将其打印到文件对象或缓冲区等)。当显示在控制台中时,它并没有很好地“格式化”。 -
试试
print(myfunc(4))吧。 -
这里没有问题。唯一的区别是,在一种情况下,该值被格式化为语法上有效的 Python 文字,而在另一种情况下,它实际打印到屏幕上。
标签: python function return line