-1

嘿,我的 for 循环有问题,所以假设我想用 for 循环在一行中打印 5 次“#”符号。

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

我可以如何获得两者之间的空间所以它看起来像#####而不是#####???

4

5 回答 5

3

我假设你打算在这个循环中做一些事情,而不是仅仅打印“#”,如果是这样的话,你有几个选项:

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))
于 2013-02-10T01:20:45.097 回答
0

请改用该print 功能。(注意,在 Python 2print中通常是一个语句,但是通过 import print_function,它变成了一个函数)。

from __future__ import print_function

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

该函数支持end您可以指定的关键字参数。

于 2013-02-10T01:21:18.930 回答
0

我会使用一个连接......这样的东西应该可以工作:

print(''.join('x' for x in range(5)))
于 2013-02-10T01:22:24.330 回答
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
于 2013-02-10T01:23:57.593 回答
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
于 2013-02-10T01:28:20.697 回答