2017-02-06 53 views
0

我一直在做關於codeabbey.com的練習以清除掉鐵鏽,並且我一直在遇到這個小但仍然令人沮喪的問題。我想讓我的程序吐出一行n個輸出項,然後換行輸入任意n行,但我的程序都吐出一行(n-1)個項目,一個換行符,然後是最後一項。在for循環結束時刪除換行符 - python 2.x

這裏是其中我第一給定要被處理,則對他們自己的數對的一個例子,並且我與找到的最小的任務(請原諒我的懶惰使用的預先存在的函數):

quanta = int(raw_input()) 
print "\n" 

for i in xrange(quanta): 
    a = raw_input().split() 
    a = map(int, a) 
    print min(a), 

和該輸入複製粘貼到命令行:

3 
5 3 
2 8 
100 15 

我期望這樣的輸出:

3 2 15 

而是我得到這個輸出

3 2 
15 

那麼我的問題是我怎麼擺脫尾隨換行符的?

+1

我無法複製此內容。運行你的代碼,粘貼輸入,我會得到預期的輸出。腳本生成的輸出中沒有額外的換行符。 –

+0

這可能是我的終端有問題嗎?我只是使用標準的mac os終端。 –

+0

我在一臺標準的Mac OS X終端上測試了它。 –

回答

0

我能夠重現。與此複製緩衝區中:

3 
5 3 
2 8 
100 15 

運行時,腳本和粘貼此而不換行符腳本停留在第三輸入行的a = raw_input().split(),但已經輸出的兩行以上的min32),所以當你點擊換行符時,raw_input進入換行符,最後的min15)被打印出來。

一種解決方案是僅在最後打印:

quanta = int(raw_input()) 
print "\n" 

res = [] 
for i in xrange(quanta): 
    a = raw_input().split() 
    a = map(int, a) 
    res.append(min(a)) 

print(" ".join(str(i) for i in res)) 

另一種是還包括在複製緩衝器其後的換行符(上MacOs你需要的線下向下拖動鼠標一點以選擇尾隨換行符)

+0

感謝您的幫助!即使在終端,這也解決了這個問題。 –

+0

@ColeWhetstone很高興它做到了,你能接受答案嗎? – hansaplast