嘿,我有一個for循環的問題, 因此,讓我說我想實現打印「#」符號5次循環與空間和一行。蟒蛇與循環
for i in range(5):
print "#",
可以如何獲得在兩者之間的空間,因此它看起來像#####而不是######?
嘿,我有一個for循環的問題, 因此,讓我說我想實現打印「#」符號5次循環與空間和一行。蟒蛇與循環
for i in range(5):
print "#",
可以如何獲得在兩者之間的空間,因此它看起來像#####而不是######?
我假設你打算在這個循環中不僅僅是打印「#」等做的事情,如果是這樣的話,你有幾種選擇方案:
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))
使用print
功能來代替。 (請注意,在Python 2中,print
通常是一個聲明,但是通過導入print_function
,它會變成函數)。
from __future__ import print_function
for i in range(5):
print('#', end='')
該函數支持您可以指定的關鍵字參數end
。
要明確,區別在於'print'通常是一個關鍵字(我認爲只有Python 2.7),所以這是一種使用print *函數*的方法。 – 2013-02-10 01:30:50
我會用加入...這樣的事情應該工作:
print(''.join('x' for x in range(5)))
或者,'print'#'* 5'。 – Johnsyweb 2013-02-10 01:23:01
真的......可能更乾淨。 – 2013-02-10 01:23:57
你可以不用一個循環!
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
我以爲OP不想要逗號。但是,如果他加入,那麼你的加入是絕對正確的。 – 2013-02-10 01:25:31
這是一個例子。但是,我想沒有逗號就更清楚了。謝謝。 – nneonneo 2013-02-10 01:26:55
是的;但是,你的解決方案對於需要更復雜的人來說非常有用。我喜歡它。 :) – 2013-02-10 01:27:46
除了其他的答案貼出來,你還可以:
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
哦,嘿傢伙,事情是,我嘗試不使用乘法(*)運算符或任何重複級聯,我必須使用for循環打印出來。 – user2020817 2013-02-10 01:44:01
感謝大家的幫助我剛剛發現如何做到這一點!非常感謝。欣賞所有的建議! – user2020817 2013-02-10 01:46:20
***爲什麼***你想避免這些事情?而***爲什麼***必須使用'for'循環?如果你在問題中解釋你的限制,你更有可能得到一個合適的答案。無論如何,[如何保持Python打印添加空格?](http://stackoverflow.com/questions/255147/how-do-i-keep-python-print-from-adding-spaces)的答案仍然有效。 – Johnsyweb 2013-02-10 01:46:29