2
我是新来的python,并面临以下问题..我试图从函数中获得两行使用return的文本,但仍然获得“\ n”作为文本(在IDLE 3.5)。所有工作正常,当我将“返回”更改为“打印”,但我需要“返回”。Python从函数返回的新行
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文字,而在另一种情况下,它实际上被打印到屏幕上。 – deceze