2016-03-21 7 views
3

変数を使用して長さが必要に応じて変更できるように文字列形式を設定するにはどうすればよいですか?例えば、長さが最初に10であったとすると、入力が変更され、長さが15になるとします。更新する書式文字列を取得するにはどうすればよいですか?Python 3で文字列形式のスペースを設定する方法

明らかに上記の構文は間違っていますが、これを動作させる方法を理解できません。あなたはこのように宣言することができ

+0

インデントを修正できますか? forループ内で印刷しようとしていますか? –

+1

入力例と予想出力を表示してください。 – wwii

+0

なぜ 'print(s)'を使わないのですか? 's'が何であれ印刷します。 –

答えて

4

>>> length = 20 
>>> string = "some string" 
>>> print("%*s" % (length, string)) 
     some string 

またはフォーマット文字列を作成するにはフォーマット文字列を使用しますformat方法ポジション引数と組み合わせた素敵なキーワード引数:

>>> s = 'my string' 
>>> length = 20 
>>> '{:>{length}s}'.format(s, length=length) 
'   my string' 
+0

ちょっと自分で見つけました! ;-) –

+2

python文字列のフォーマットに最適なサイトhttps://pyformat.info/#string_pad_align –

0

print('%20s'%'stuff') 

20は、印刷文字列の文字数になります。余分な空白。

あなたは別のパラメータとして %*sを使用して lengthに渡すことができ
+0

長さは空白の量を変更し、何も印刷されません – uhexos

+0

。私は空白を見ていると確信しています。 – armatita

+3

OPは、長さを事前に知ることに依存しないフォーマット文字列を取得しようとしています。彼は長さを変えることができるようにしたいが、同じ書式文字列を使用したい。 tobias_kの答えはあなたにその考えを与えるはずです。 – zondo

2

str.format

>>> length = 20 
>>> string = "some string" 
>>> print('{1:>{0}}'.format(length, string)) 
     some string 
+0

'str.format'でもこれを行うにはいくつかの方法がありますが、私は覚えていないか、今すぐ見つけられません... –

+0

私の答えを見てください:) –

1

を使用して

>>> print(("%%%ds" % length) % string) 
     some string 
関連する問題