Pythonで文字列と整数を連結する方法
はじめに
Pythonでは、+演算子を使って文字列の連結がサポートされています。ほとんどの他のプログラミング言語では、文字列と整数(または他のプリミティブなデータ型)を連結する場合、言語が自動的にそれらを文字列に変換してから連結します。
ただし、Pythonでは、+演算子を使用して文字列と整数を連結しようとすると、実行時エラーが発生します。
例えば
「+」演算子を使用して文字列(str)と整数(int)を連結する例を見てみましょう。
current_year_message = 'Year is '
current_year = 2018
print(current_year_message + current_year)
以下のプログラムを実行すると、”Year is 2018″という文字列が出力されることが期待されています。しかし、実際に実行するとランタイムエラーが発生します。
Traceback (most recent call last):
File "/Users/sammy/Documents/github/scdev/Python-3/basic_examples/strings/string_concat_int.py", line 5, in <module>
print(current_year_message + current_year)
TypeError: can only concatenate str (not "int") to str
Pythonでは、strとintをどのように連結しますか?この操作を行うためのさまざまな他の方法があります。
前提条件
このチュートリアルを完了するためには、以下が必要です:
- Familiarity with installing Python 3. And familiarity with coding in Python. How to Code in Python 3 series or using VS Code for Python.
このチュートリアルはPython 3.9.6でテストされました。
str()関数を使用する
str()関数にintを渡すことができます。渡されたintはstrに変換されます。
print(current_year_message + str(current_year))
現在の年の整数が文字列として返されます。2018年です。
%インターポレーション演算子を使用する
printfスタイルの文字列フォーマットを使用して、変換仕様に値を渡すことができます。
print("%s%s" % (current_year_message, current_year))
現在の年( current_year)は整数から文字列に変換されます。年は2018です。
str.format()関数を使う
私たちは、文字列と整数の連結にはstr.format()関数も使用できます。
print("{}{}".format(current_year_message, current_year))
現在の年(current_year)は整数型から文字列型に強制変換されます:年は2018年です。
f-stringsを使用する
Python 3.6以上のバージョンを使用している場合は、f-stringsも使用できます。
print(f'{current_year_message}{current_year}')
現在の年の整数は文字列に補完されます。「年は2018年です。」
結論
弊社のGitHubレポジトリから、完全なPythonスクリプトや他のPythonのサンプルをチェックすることができます。