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