149

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

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

エラーが発生するので、

print s+str(i) 

エラーが発生しないようにします。

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

4

9 に答える 9

189

最新の文字列フォーマット:

"{} and {}".format("string", 1)
于 2012-07-19T10:43:47.410 に答える
91

文字列のフォーマットなし:

>> print 'Foo',0
Foo 0
于 2012-07-19T10:44:18.277 に答える
37

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

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

または、古いが「まだ固執している」、%-formatting:

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

上記の両方の例では、連結された2つのアイテムの間にスペースはありません。スペースが必要な場合は、フォーマット文字列に追加するだけです。

これらは、アイテムを連結する方法、アイテム間のスペースなどについて多くの制御と柔軟性を提供します。フォーマット仕様の詳細については、これを参照してください

于 2012-07-19T10:42:49.873 に答える
18

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

s = "string"
i = 0

print (s + repr(i))

上記のコードスニペットはPython3構文で記述されていますが、バージョン3で必須になるまで、印刷後の括弧は常に許可されていました(オプション)。

お役に立てれば。

ケイトリン

于 2013-07-10T07:49:46.470 に答える
5

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

print(s+"{}".format(i))
于 2019-01-10T18:36:15.170 に答える
4

Python 3.6以降では、次のようにフォーマットできます。

new_string = f'{s} {i}'
print(new_string)

あるいは単に:

print(f'{s} {i}')
于 2020-06-29T18:00:59.373 に答える
0

印刷したいだけなら、これを行うことができます:

print(s , i)
于 2020-04-27T12:00:03.947 に答える
0

次のような状況で文字列と整数を連結するとします。

for i in range(1,11):
   string="string"+i 

タイプまたは連結エラーが発生します

それを実行するための最良の方法は、次のようなことを行うことです。

for i in range(1,11):
   print("string",i)    

これにより、文字列1、文字列2、文字列3などの連結結果が得られます。

于 2020-10-23T15:11:38.177 に答える
0

Fストリングも使えます!

s = "string"
i = 95
print(f"{s}{i}")
于 2021-08-20T12:41:42.607 に答える