2013-02-10 218 views
-1

嘿,我有一個for循環的問題, 因此,讓我說我想實現打印「#」符號5次循環與空間和一行。蟒蛇與循環

for i in range(5): 
    print "#", 

可以如何獲得在兩者之間的空間,因此它看起來像#####而不是######?

+0

哦,嘿傢伙,事情是,我嘗試不使用乘法(*)運算符或任何重複級聯,我必須使用for循環打印出來。 – user2020817 2013-02-10 01:44:01

+0

感謝大家的幫助我剛剛發現如何做到這一點!非常感謝。欣賞所有的建議! – user2020817 2013-02-10 01:46:20

+1

***爲什麼***你想避免這些事情?而***爲什麼***必須使用'for'循環?如果你在問題中解釋你的限制,你更有可能得到一個合適的答案。無論如何,[如何保持Python打印添加空格?](http://stackoverflow.com/questions/255147/how-do-i-keep-python-print-from-adding-spaces)的答案仍然有效。 – Johnsyweb 2013-02-10 01:46:29

回答

3

我假設你打算在這個循環中不僅僅是打印「#」等做的事情,如果是這樣的話,你有幾種選擇方案:

import sys 
for i in range(5): 
    sys.stdout.write('#') 

或者,如果你有決心使用打印:

for i in range(5): 
    print "\b#", 

或:

from __future__ import print_function 
for i in range(5): 
    print('#', end='') 

如果你真的只想打印 '#' n次,那麼你可以這樣做:

n = 5 
print '#'*n 

或:

n = 5 
print ''.join('#' for _ in range(n)) 
0

使用print功能來代替。 (請注意,在Python 2中,print通常是一個聲明,但是通過導入print_function,它會變成函數)。

from __future__ import print_function 

for i in range(5): 
    print('#', end='') 

該函數支持您可以指定的關鍵字參數end

+0

要明確,區別在於'print'通常是一個關鍵字(我認爲只有Python 2.7),所以這是一種使用print *函數*的方法。 – 2013-02-10 01:30:50

0

我會用加入...這樣的事情應該工作:

print(''.join('x' for x in range(5))) 
+2

或者,'print'#'* 5'。 – Johnsyweb 2013-02-10 01:23:01

+0

真的......可能更乾淨。 – 2013-02-10 01:23:57

0

你可以不用一個循環!

print '#' * 5 

如果你正在做更復雜的東西,你可以用str.join與理解:

print ''.join(str(i**2) for i in range(4)) # prints 0149 
print ','.join(str(i+1) for i in range(5)) # prints 1,2,3,4,5 
+0

我以爲OP不想要逗號。但是,如果他加入,那麼你的加入是絕對正確的。 – 2013-02-10 01:25:31

+0

這是一個例子。但是,我想沒有逗號就更清楚了。謝謝。 – nneonneo 2013-02-10 01:26:55

+0

是的;但是,你的解決方案對於需要更復雜的人來說非常有用。我喜歡它。 :) – 2013-02-10 01:27:46

0

除了其他的答案貼出來,你還可以:

mystring = '' 
for i in range(5): 
    mystring += '#' # Note that you could also use mystring.join() method 
        # .join() is actually more efficient. 
print mystring 

或者你甚至可以:

print '#'*5 
+0

這個問題並不重要。我不認爲'mystring.join ('#')'做你認爲它做的事。 – Matt 2013-02-10 01:33:47

+2

'mystring.join('#')'是一個無操作...並且以這種方式構建字符串效率不高。 – nneonneo 2013-02-10 01:34:03

+0

這就是爲什麼我要'打印'#'* 5'。我認爲這個例子雖然意味着要問「我怎麼打印而不增加空格」,因爲最簡單的答案是'print'#####'' – 2013-02-10 01:35:54