-1

forループに問題があるので、スペースを入れずに1行でforループを使用して「#」記号を5回印刷したいとします。

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

どうすればその間のスペースに乗れるので、#####の代わりに#####のように見えますか?

4

5 に答える 5

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

代わりにprint 関数を使用してください。(Python 2printでは通常はステートメントですが、インポート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 に答える