2015-11-17 15 views
-1

如果我有一個講話,例如,正在由用戶輸入:如何識別用戶輸入爲「 n」並最終用空格替換時的換行符?

speech = input("Enter your speech: ") 

,如果該輸入(例如):

您好,歡迎來到我的演講。
這是我的典範演講。
我正在試圖分析。

但如果我要打印(語音),我得到的輸出:

"Hello, welcome to my speech." 

而不是其他2線。我怎樣才能識別換行符(\ n)和替換它的空間,所以我的輸出將是:

"Hello, welcome to my speech. This is my exemplar speech. Which I am trying to analyze." 
+2

輸入只返回一行。如果你想要不止一個,你需要做一個循環,並決定何時停止。 – Random832

+3

根本看不到換行符。你只收到一行。你可以試着用sys.stdin.read()來嘗試,儘管這需要用戶在完成時按Ctrl-D(或者在Windows中是IIRC,Ctrl-Z,後面是Enter)輸入線。 – ShadowRanger

回答

0

從你的問題的標題聽起來像你就要有用戶逐字輸入的字符\n - 通常被稱爲換行符,而不是換行符,不過這種方式 - 但而不是在您的問題的正文中顯示的多行上。

如果是這樣的話。他們從字面上發生下,所有在一行,按之前,請輸入

Hello, welcome to my speech.\nThis is my exemplar speech.\nWhich I am trying to analyze. 

然後,你可以用空格代替所有文字'\n'子在它通過使用字符串replace()方法是這樣的:

speech = input('Enter your speech: ').replace('\\n', ' ') 
+0

我的appologies,我的意思是如果一個文本複製+粘貼在用戶被要求輸入一個語音...有什麼辦法來解決這種情況? – 13K

+0

在這種情況下,我想另一個問題可能是[這個答案](http://stackoverflow.com/questions/15692149/taking-multiline-input-with-sys-stdin/15692920#15692920)中顯示的第二個解決方案工作(並且會將你的調用替換爲'input()',它也從'sys.stdin'中讀取行)。 – martineau

+0

你在什麼操作系統上?如果可以在輸入單個字符(而不是整行)時讀取它們,那麼用戶可能會輸入一些特殊字符來指示輸入的結尾(因爲按下Enter鍵並不表示了)。 – martineau

相關問題