嘿,我的 for 循环有问题,所以假设我想用 for 循环在一行中打印 5 次“#”符号。
for i in range(5):
print "#",
我可以如何获得两者之间的空间所以它看起来像#####而不是#####???
我假设你打算在这个循环中做一些事情,而不是仅仅打印“#”,如果是这样的话,你有几个选项:
import sys
for i in range(5):
sys.stdout.write('#')
或者,如果您决定使用 print:
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 2print
中通常是一个语句,但是通过 import print_function
,它变成了一个函数)。
from __future__ import print_function
for i in range(5):
print('#', end='')
该函数支持end
您可以指定的关键字参数。
我会使用一个连接......这样的东西应该可以工作:
print(''.join('x' for x in range(5)))
你可以在没有循环的情况下做到这一点!
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
除了发布的其他答案之外,您还可以:
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