文字列の操作:結合と繰り返し#

はじめに#

前回までの記事で、文字列の基本や変数、計算方法について学びました。今回は、さらに一歩進んで、文字列を操作する方法について詳しく見ていきましょう。

文字列の結合(連結)#

+ 演算子による結合#

文字列同士を結合する最も基本的な方法は、+ 演算子を使う方法です。

以下のコードを実行してみましょう。

>
# + 演算子による文字列の結合
first_name = "太郎"
last_name = "山田"

# 姓と名を結合して氏名にする
full_name = last_name + first_name
print(full_name)

# 文字列同士の結合
greeting = "こんにちは、" + full_name + "さん!"
print(greeting)

実行結果:

山田太郎
こんにちは、山田太郎さん!

このように、+ 演算子を使うと、複数の文字列を連結することができます。

数値と文字列の結合#

数値と文字列を結合したい場合は、まず数値を文字列に変換する必要があります。これには str() 関数を使います。

>
# 数値と文字列の結合
age = 30
message = "私は" + str(age) + "歳です。"
print(message)

# 型変換しないとエラーになる
# error_message = "年齢: " + age  # TypeError

実行結果:

私は30歳です。

注意点として、文字列と数値は直接結合できません。上のコードでコメントアウトされている行を実行すると、TypeError というエラーが発生します。

文字列の繰り返し#

* 演算子による繰り返し#

文字列を特定の回数だけ繰り返すには、* 演算子を使います。

>
# * 演算子による文字列の繰り返し
# 文字列を特定の回数繰り返す
star_line = "*" * 20
print(star_line)

# 文字列を繰り返して装飾する
message = "お知らせ"
decorated_message = "=" * 10 + message + "=" * 10
print(decorated_message)

実行結果:

********************
==========お知らせ==========

このように、* 演算子を使うと、文字列を指定した回数だけ繰り返すことができます。これは区切り線の表示や、メッセージの装飾などに役立ちます。

文字列とその繰り返しの組み合わせ#

文字列の結合と繰り返しを組み合わせることで、さらに多様な表現が可能です。

>
# 文字列の結合と繰り返しの組み合わせ
# ヘッダーとフッターを作成
header = "+" + "-" * 30 + "+"
content = "| " + "Welcome to Python!".center(28) + " |"
footer = "+" + "-" * 30 + "+"

# 枠付きメッセージを表示
print(header)
print(content)
print(footer)

実行結果:

+------------------------------+
|      Welcome to Python!      |
+------------------------------+

ここでは、center() メソッドも使用しています。このメソッドは、指定された幅の中で文字列を中央に配置します。

フォーマット文字列(f-string)の詳細#

以前の記事でも少し触れましたが、f-stringについて、より詳しく見ていきましょう。

数値のフォーマット#

f-stringを使うと、数値の表示形式も簡単に制御できます。

>
# f-stringでの数値フォーマット
price = 1234.56

# 小数点以下の桁数指定
print(f"価格: {price:.2f}円")  # 小数点以下2桁まで表示

# 3桁ごとにカンマを入れる
print(f"価格: {price:,.2f}円")

# 幅の指定(右寄せ)
print(f"価格: {price:10.2f}円")  # 10桁の幅で表示(右寄せ)

# ゼロ埋め
code = 42
print(f"商品コード: {code:04d}")  # 4桁でゼロ埋め

実行結果:

価格: 1234.56円
価格: 1,234.56円
価格:    1234.56円
商品コード: 0042

: の後に書くフォーマット指定子によって、様々な表示形式を設定できます。主な指定子の意味は次の通りです。

  • .2f : 小数点以下2桁まで表示
  • , : 3桁ごとにカンマを入れる
  • 10.2f : 10桁の幅で表示し、小数点以下は2桁まで(右寄せ)
  • 04d : 4桁でゼロ埋めした整数として表示

文字列のフォーマット#

文字列も同様に、幅や配置を調整できます。

>
# f-stringでの文字列フォーマット
name = "山田太郎"

# 幅の指定(左寄せ)
print(f"名前: {name:<10}さん")  # 10文字の幅で左寄せ

# 幅の指定(中央寄せ)
print(f"名前: {name:^10}さん")  # 10文字の幅で中央寄せ

# 幅の指定(右寄せ)
print(f"名前: {name:>10}さん")  # 10文字の幅で右寄せ

実行結果:

名前: 山田太郎    さん
名前:    山田太郎   さん
名前:       山田太郎さん

文字列のフォーマット指定子の意味は次の通りです:

  • < : 左寄せ
  • ^ : 中央寄せ
  • > : 右寄せ

特殊文字の埋め込み#

f-string内で波括弧自体を表示したい場合は、波括弧を二重にします。

>
# f-string内で波括弧を表示する
print(f"波括弧を表示するには、{{こうします}}。")

実行結果:

波括弧を表示するには、{こうします}。

まとめ#

この記事では、文字列の操作、特に結合と繰り返しについて学びました。

  • 文字列の結合方法
    • + 演算子を使った結合
    • str() 関数を使った数値との結合
  • 文字列の繰り返し
    • * 演算子を使った繰り返し
    • 結合と繰り返しの組み合わせ
  • f-string(フォーマット文字列)の活用
  • 変数や式の埋め込み
    • 数値のフォーマット指定
    • 文字列の幅や配置の調整

これらの知識を使うことで、より柔軟で読みやすい文字列処理が可能になります。特にf-stringは、複雑なテキスト生成を簡潔に行えるPythonの強力な機能です。