python with for循环

时间:2013-02-10 01:19:09

标签: python loops for-loop space

嘿我对for循环有问题, 所以,我想说,我希望用一个带有空间和一行的for循环来实现5次打印“#”符号。

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

我可以如何在两者之间骑行,所以它看起来像#####而不是#### ???

5 个答案:

答案 0 :(得分: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))

答案 1 :(得分:0)

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

from __future__ import print_function

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

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

答案 2 :(得分:0)

我会使用连接...这样的事情应该有效:

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

答案 3 :(得分: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

答案 4 :(得分: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