【6日でできるPython入門】組み込み型 文字列②

 Pythonで文字列を自在に操作できるようになると、データ処理やアプリ開発の幅が一気に広がります。文字列には、さまざまな「メソッド」(特定の型で使える機能)が用意されており、複雑なテキスト加工も簡単に実現できます。
 さらに、文字列は「シーケンス型」と呼ばれる性質を持ち、特定の位置の文字を取り出したり、部分的に切り出したりもできます。
ここでは、文字列のメソッドとインデクシング/スライシングの基本について詳しく学びます。

1.文字列のメソッド

1.1. 代表的な文字列メソッド

Pythonの文字列には、以下のような便利なメソッドが用意されています。
メソッドは「.メソッド名()」の形で呼び出し、特定の動作を行います。

メソッド名機能使用例・結果
capitalize先頭のみ大文字にする'sakura'.capitalize() → 'Sakura'
upper全部大文字に変換'hello'.upper() → 'HELLO'
lower全部小文字に変換'HELLO'.lower() → 'hello'
replace指定文字列の置換'赤い花'.replace('赤', '白') → '白い花'
count指定文字の出現数を数える'banana'.count('a') → 3
find指定文字列の位置(なければ-1)'apple'.find('p') → 1
index指定文字列の位置(なければエラー)'apple'.index('p') → 1
strip前後の空白除去' hello '.strip() → 'hello'
format書式化(値の埋め込み)"{}歳です".format(20) → '20歳です'"
split区切り文字で分割しリスト化'A,B,C'.split(',') → ['A', 'B', 'C']
joinリスト等を連結して文字列化'-'.join(['A','B']) → 'A-B'
startswith指定文字列で始まるか判定'Python'.startswith('Py') → True
endswith指定文字列で終わるか判定'index.html'.endswith('.html') → True
サンプルプログラム:複数の文字列メソッドを組み合わせて使う

ファイル名: lesson05-1.py

# ユーザーの名前とメールを加工して出力するプログラム

name = "tanaka haru"
email = "   haru.tanaka@sample.com  "

# 名前の整形
formatted_name = name.title()       # 頭文字を大文字に
print("整形後の名前:", formatted_name)

# メールの前後空白を除去
email_clean = email.strip()
print("整理済みメールアドレス:", email_clean)

# ドメイン部分だけ抜き出す
domain = email_clean.split("@")[1]
print("メールのドメイン:", domain)

# 名前に含まれる'a'の数を数える
a_count = name.count("a")
print("名前に含まれる'a'の数:", a_count)

# メールが「@sample.com」で終わるか確認
is_sample = email_clean.endswith("@sample.com")
print("sample.comのメールか:", is_sample)

実行結果

整形後の名前: Tanaka Haru
整理済みメールアドレス: haru.tanaka@sample.com
メールのドメイン: sample.com
名前に含まれる'a'の数: 4
sample.comのメールか: True

解説

コード説明
name.title()先頭文字を大文字に("tanaka haru"→"Tanaka Haru")
email.strip()前後空白を除去
email_clean.split("@")[1]'@'で分割し2つ目(ドメイン)を取り出す
name.count("a")'a'の出現回数をカウント
email_clean.endswith("@sample.com")指定文字列で終わるか判定

1.2. formatメソッドの活用例

ファイル名: lesson05-2.py

product = "パソコン"
price = 85000
msg = "{}の価格は{}円です。".format(product, price)
print(msg)

実行結果

パソコンの価格は85000円です。

2.インデクシングとスライシング

2.1. インデクシング(文字の位置指定)

文字列の特定の位置の文字は、インデックス(0から始まる番号)でアクセスします。

ファイル名: lesson05-3.py

text = "プログラミング"
print("0番目の文字:", text[0])
print("3番目の文字:", text[3])
print("末尾の文字:", text[-1])

実行結果

0番目の文字: プ
3番目の文字: ラ
末尾の文字: グ
位置0123456
文字

※負の番号(-1, -2…)は後ろから数えます。

2.2. スライシング(部分文字列の取得)

文字列の一部を切り出すには、スライス記法 [start:end:step] を使います。

ファイル名: lesson05-4.py

text = "アイウエオカキクケコ"
print("2~6番目の文字:", text[2:7])    # 2~6番目
print("0~4番目まで:", text[:5])       # 先頭~4番目
print("7番目以降:", text[7:])          # 7番目~末尾まで
print("2文字ごとに:", text[::2])       # 2文字ごと
print("逆順:", text[::-1])            # 逆順

実行結果

2~6番目の文字: ウエオカキ
0~4番目まで: アイウエオ
7番目以降: クケコ
2文字ごとに: アウオキケ
逆順: コケクキカオエウイア
スライス例説明
text[2:7]2番目~6番目まで
text[:5]先頭~4番目まで
text[7:]7番目~末尾まで
text[::2]2文字ごとに抜き出す
text[::-1]逆順にする

 このように、Pythonの文字列は多彩な操作ができ、複雑なテキスト処理も直感的に書くことができます。日常的な文字列処理をしっかりマスターして、プログラミングの力をさらに高めていきましょう。