web-dev-qa-db-ja.com

Pythonで文字列と整数を連結する

Pythonであなたが持っていると言う

s = "string"
i = 0
print s+i

あなたが書くようにあなたにエラーを与えるでしょう

print s+str(i) 

エラーにならないように。

これはintと文字列の連結を処理するための非常に不器用な方法だと思います。このような連結を行うためにJavaでもStringへの明示的なキャストは必要ありません。 Pythonで明示的にキャストすることなく、この種の連結を行うためのより良い方法はありますか?

121
specialscope

現代の文字列フォーマット:

"{} and {}".format("string", 1)
158
user647772

文字列フォーマットなし

>> print 'Foo',0
Foo 0
81
Burhan Khalid

新しいスタイルの.format()メソッドを使った文字列のフォーマット(デフォルト 。format() で提供されます):

 '{}{}'.format(s, i)

あるいは、もっと古い、しかし「まだまだまあまあ」の%-フォーマット:

 '%s%d' %(s, i)

上記の両方の例では、連結された2つの項目の間にnoのスペースがあります。スペースが必要な場合は、フォーマット文字列に単純に追加できます。

これらは、たくさんの制御と項目間の連結方法についての柔軟性、それらの間のスペースなどを提供します。 フォーマット指定についての詳細はこちら .

34
Levon

Pythonは、ある特定のタスクを実行するための「明白な」方法が通常1つ(または2つ)ある一方で、まだ柔軟性があるという点で興味深い言語です。

s = "string"
i = 0

print (s + repr(i))

上記のコードスニペットはPython 3シンタックスで書かれていますが、printの後の括弧はバージョン3でそれらが必須になるまでは常に許可されていました(オプション)。

お役に立てれば。

ケイトリン

13
CaitlinG

format()メソッドを使用して文字列と整数を連結することができます

print(s+"{}".format(i))
2
Aakash Wadhwa