forループに問題があるので、スペースを入れずに1行で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))
投稿された他の回答に加えて、次のこともできます。
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
代わりにprint
関数を使用してください。(Python 2print
では通常はステートメントですが、インポート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