2013-04-21 61 views
-1

我有需要我用return,我不知道如何在多行返回的問題。我需要能夠得到一個輸出看起來像這樣如何返回包含新行的字符串?

Dear so and so, 
kjhagjkahgsdhgl;dslhglk 
jkasdhgjkdshkglhds;g 
kjdghksadjglkdjslkg 
kjgahkjsdhlgkdsjg;lsd 

在胡言亂語是,我有

回答

4

可以使用換行符轉義序列(\n)字符串:

return 'line1\nline2\nline3' 

或者多行字符串:

return '''line1 
line2 
line3''' 

或者將一行行連接在一起:

return '\n'.join(['line1', 'line2', 'line3']) 
+0

當我用它給了我行繼續字符錯誤 – blandman1990 2013-04-21 04:33:19

+0

後意外字符第一個選項,當我使用這些不正確的格式化。輸出間隔中應開始文本 – blandman1990 2013-04-21 04:36:18

+1

@RyanBland的新行:我不能幫你沒有看到你的代碼。 – Blender 2013-04-21 04:37:28

1

你可以試試這個:

str1 + '\n' + str2. 
+0

這個工作將使用return(str1 +'\ n'+ str2)? – blandman1990 2013-04-21 04:28:51

+0

@ blandman1990是的。 – 2013-04-21 05:00:32

1
str = """hello world 
goodbye mars""" 

print(str) 
+0

'str'是abuiltin的名字,不要使用它 – jamylak 2013-04-21 07:04:37

2

沒有與你的代碼沒有問題。它工作正常。唯一的問題是關於返回值的混淆。

當您運行在交互式Python解釋聲明,Python會打印出返回值的「代表性」(除非它是None)。表示與價值本身不同。您可以使用內置的repr函數獲取任何對象的表示。

字符串的repr將包括引號,並且將所有的字符串的特殊字符逃脫。引號和轉義字符實際上並不是字符串本身的一部分,只是表示的一部分。

如果打印出來的字符串print(string),你會看到字符串,沒有什麼,這只是在表現的內容之外。沒有辦法使表示看起來像打印的輸出。 Python不會那樣工作。可能你所擁有的功能正是你所需要的任務。

0

你需要這樣做:

>>> print customSpam("John","Bob","Zoo") 

如果你只是這樣做:

>>> customSpam("John","Bob","Zoo") 

你會得到字符串的內部表示,而不是如何將打印一次評估。

相關問題