このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Python入門】文字列をつなげる演算子

文字列をつなげる演算子
Pythonプログラミングにおいて、文字列は最も頻繁に使用されるデータ型の一つです。ユーザーからの入力、ファイル操作、データの表示など、さまざまな場面で文字列を扱います。文字列を効率的に操作するためには、演算子を活用して文字列を連結したり、部分文字列を抽出したりする方法を理解することが重要です。
ここでは、文字列をつなげる演算子の基本的な使い方から、インデックスやスライスを用いた文字列操作、さらに文字列を繰り返し連結する方法について詳しく解説します。

プログラムのダウンロード
「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。
1.文字列の連結演算子
1.1. +
演算子による文字列の連結
+
演算子を使用することで、複数の文字列を一つに結合することができます。これは、数学における加算と似ていますが、文字列の場合は連結(結合)として機能します。
サンプルプログラム
# 文字列の連結
greeting = "Good"
punctuation = "!"
message = greeting + " morning" + punctuation
print(message) # 出力: Good morning!
実行結果
Good morning!
解説
- 変数
greeting
に"Good"
を、punctuation
に"!"
を代入します。 greeting + " morning" + punctuation
により、"Good morning!"
という新しい文字列が生成され、message
に代入されます。
1.2. 数値との連結
文字列と数値を連結する場合、数値を文字列に変換する必要があります。これには str()
関数を使用します。
サンプルプログラム
# 文字列と数値の連結
version = "Version "
number = 2.5
full_version = version + str(number)
print(full_version) # 出力: Version 2.5
実行結果
Version 2.5
解説
- 変数
version
に"Version "
を、number
に2.5
を代入します。 str(number)
により、数値2.5
が文字列"2.5"
に変換され、連結されて"Version 2.5"
となります。
1.3. +=
演算子による塁算代入
塁算代入演算子 +=
を使用すると、変数に対して演算と代入を同時に行うことができます。これにより、コードをより簡潔に記述できます。
サンプルプログラム
# 塁算代入演算子を使用した連結
username = "User"
username += "_123"
print(username) # 出力: User_123
実行結果
User_123
解説
- 変数
username
に"User"
を代入します。 username += "_123"
により、username
に"_123"
が連結され、結果として"User_123"
となります。
2.文字列の繰り返し連結
2.1. *
演算子による文字列の繰り返し
*
演算子を使用することで、文字列を指定した回数だけ繰り返して連結することができます。これは、指定した回数だけ文字列を繰り返すことと同義です。
サンプルプログラム
# 文字列の繰り返し連結
divider = "-"
line = divider * 30
print(line) # 出力: ------------------------------
実行結果
------------------------------
解説
- 変数
divider
に"-"
を代入します。 divider * 30
により、"-"
が30回繰り返され、line
に"------------------------------"
が代入されます。
2.2. 塁算代入演算子と *
演算子の組み合わせ
*=
演算子を使用すると、変数に対して繰り返し演算と代入を同時に行うことができます。
サンプルプログラム
# 塁算代入演算子を使用した繰り返し連結
separator = "*"
separator *= 10
print(separator) # 出力: **********
実行結果
**********
解説
- 変数
separator
に"*"
を代入します。 separator *= 10
により、"*"
が10回繰り返され、"**********"
が代入されます。
3.インデックスとスライスを使った文字列操作
3.1. インデックスによる文字列の部分抽出
インデックスを使用することで、文字列の特定の位置にある文字を取得することができます。Pythonでは、0から始まるインデックスが使用されます。
サンプルプログラム
# インデックスを使用した部分文字列の抽出
word = "Python"
first_char = word[0]
last_char = word[-1]
print(first_char) # 出力: P
print(last_char) # 出力: n
実行結果
P
n
解説
- 変数
word
に"Python"
を代入します。 word[0]
により、最初の文字"P"
が取得され、first_char
に代入されます。word[-1]
により、最後の文字"n"
が取得され、last_char
に代入されます。
3.2. スライスによる部分文字列の抽出
スライスを使用すると、文字列の特定の範囲を抽出することができます。スライスは [開始インデックス:終了インデックス]
の形式で指定します。
サンプルプログラム
# スライスを使用した部分文字列の抽出
sentence = "Hello, World!"
substring = sentence[7:12]
print(substring) # 出力: World
実行結果
World
解説
- 変数
sentence
に"Hello, World!"
を代入します。 sentence[7:12]
により、インデックス7から11までの文字"World"
が取得され、substring
に代入されます。
4.文字列操作のポイント
4.1. イミュータブルな性質
Pythonの文字列はイミュータブル(変更不可能)なデータ型です。これは、一度作成された文字列の内容を直接変更することができないことを意味します。文字列を変更したい場合は、新しい文字列を作成する必要があります。
サンプルプログラム
# イミュータブルな性質の例
original = "Hello"
modified = original.replace("H", "J")
print(original) # 出力: Hello
print(modified) # 出力: Jello
実行結果
Hello
Jello
解説
- 変数
original
に"Hello"
を代入します。 original.replace("H", "J")
により、"H"
が"J"
に置き換えられた新しい文字列"Jello"
が作成され、modified
に代入されます。original
は変更されず、依然として"Hello"
のままです。
4.2. 型の意識
演算子を使用する際には、対象となるデータ型を常に意識することが重要です。特に、文字列と数値を連結する場合は、型変換を適切に行う必要があります。
サンプルプログラム
# 型の意識が必要な例
age = 25
message = "I am " + str(age) + " years old."
print(message) # 出力: I am 25 years old.
実行結果
I am 25 years old.
解説
- 変数
age
に数値25
を代入します。 str(age)
により、数値25
が文字列"25"
に変換され、連結されます。
5.文字列をつなげる演算子一覧
以下の表は、Pythonで使用できる文字列をつなげる演算子とその機能をまとめたものです。
演算子 | 機能 |
---|---|
+ | 文字列の連結(加算) |
+= | 文字列の連結と代入(塁算代入) |
* | 文字列の繰り返し連結 |
*= | 文字列の繰り返し連結と代入(塁算代入) |
まとめ
ここでは、Pythonにおける文字列をつなげる演算子について学びました。
+
演算子:複数の文字列を連結する基本的な方法。- 数値との連結:
str()
関数を使用して数値を文字列に変換し、連結する方法。 - 塁算代入演算子
+=
:計算と代入を同時に行い、コードを簡潔に記述する方法。 *
演算子:文字列を指定回数繰り返して連結する方法。*=
演算子:繰り返し連結と代入を同時に行う方法。- インデックスとスライス:文字列の特定の部分を抽出する方法。
- イミュータブルな性質:文字列が変更不可能であることと、その影響。
これらの知識を基に、Pythonでの文字列操作を効率的かつ効果的に行うことができるようになります。次のコンテンツでは、ミュータブルとイミュータブルについて詳しく解説していきます。ぜひ、実際にコードを書きながら、文字列の連結演算子を活用してみてください。