【超入門】Pythonの文字列操作まとめ|基本から便利なテクニックまで

python

「pythonで文章を扱うにはどうすれば良いの?」
「文字を切り取ったり、つなげたりする方法が知りたい」

そんな疑問をお持ちのあなたへ。

今回は文字列の基本操作について、初心者の方でも分かるように詳しく説明していきます。

pythonでは文字列をとても簡単に扱うことができます。

しかも、ただの文字ではなく便利な機能がたくさん詰まったデータとして使えるんです。

この記事を読めば、文字列の基本操作から実践的なテクニックまで身につけることができます。

スポンサーリンク

文字列の基本|「’」でも「”」でもどちらでもOK

pythonでは、文字列を作る時に**シングルクォート(’)かダブルクォート(”)**のどちらかで文字を囲みます。

# どちらでも同じ結果
text1 = 'こんにちは'
text2 = "python入門"
print(text1)  # こんにちは
print(text2)  # python入門

クォートの使い分けのコツ

文字列の中に「’」や「”」が含まれる場合は、外側のクォートを変えると便利です:

# 文字列に「'」が含まれる場合
message1 = "I'm happy!"

# 文字列に「"」が含まれる場合  
message2 = 'She said "Hello"'

文字列をつなげる・繰り返す

つなげる(結合)

「+」を使って文字列同士をつなげることができます:

name = "太郎"
greeting = "こんにちは " + name + " さん!"
print(greeting)
# 結果:こんにちは 太郎 さん!

繰り返す

「*」を使って文字列を繰り返すことができます:

print("python! " * 3)
# 結果:python! python! python! 

文字列の一部を取り出す(スライス)

文字列は一文字ずつに番号がついていて、その番号を使って一部を取り出すことができます。

text = "python"

# 一文字だけ取り出す
print(text[0])     # p(最初の文字)
print(text[1])     # y(2番目の文字)
print(text[-1])    # n(最後の文字)

# 複数の文字を取り出す
print(text[1:4])   # yth(2番目から4番目まで)
print(text[:3])    # pyt(最初から3番目まで)
print(text[2:])    # thon(3番目から最後まで)

ポイントstart:stopで指定する時、stopの位置は含まれません。

便利な文字列メソッド

pythonの文字列には、便利な機能(メソッド)がたくさん用意されています。

文字数を数える

text = "python"
print(len(text))  # 6

# 日本語も正しく数えられます
japanese = "こんにちは" 
print(len(japanese))  # 5

大文字・小文字を変換する

text = "Hello World"
print(text.lower())  # hello world(すべて小文字)
print(text.upper())  # HELLO WORLD(すべて大文字)

文字を置き換える

text = "I like Java"
new_text = text.replace("Java", "Python")
print(new_text)  # I like Python

文字列を分割してリストにする

fruits = "りんご,みかん,ばなな"
fruit_list = fruits.split(",")
print(fruit_list)  # ['りんご', 'みかん', 'ばなな']

リストを文字列につなげる

colors = ['赤', '青', '緑']
result = "・".join(colors)
print(result)  # 赤・青・緑

余分な空白を削除する

messy_text = "  こんにちは  \n"
clean_text = messy_text.strip()
print(clean_text)  # こんにちは

文字列の中に変数を入れる(フォーマット)

文字列の中に変数の値を入れたい時は、f文字列という方法が便利です。

f文字列の使い方

name = "花子"
age = 25

# f文字列を使用(推奨)
message = f"{name}さんは{age}歳です"
print(message)  # 花子さんは25歳です

# 計算結果も入れられます
price = 100
tax = 0.1
total = f"合計金額は{price * (1 + tax)}円です"
print(total)  # 合計金額は110.0円です

古い方法(参考)

# format()メソッド(以前の方法)
message = "{}さんは{}歳です".format("花子", 25)
print(message)  # 花子さんは25歳です

よくある間違いと注意点

数値と文字列は直接つなげられない

age = 20

# これはエラーになります
# message = "年齢は" + age + "歳です"

# 正しい方法1:str()で文字列に変換
message1 = "年齡は" + str(age) + "歳です"

# 正しい方法2:f文字列を使用(こちらが簡単)
message2 = f"年齢は{age}歳です"

文字列は変更できない

pythonの文字列はイミュータブル(変更不可)という性質があります:

text = "python"
# text[0] = "P"  # これはエラーになります

# 新しい文字列を作る必要があります
new_text = "P" + text[1:]
print(new_text)  # Python

複数行の文字列を作る方法

長い文章や複数行の文字列を作りたい時は、トリプルクォートを使います:

long_text = """これは
複数行の
文字列です"""

print(long_text)
# 結果:
# これは
# 複数行の
# 文字列です

よくある質問

Q
日本語と英語では文字数の数え方は違うの?
A

pythonでは日本語も英語も1文字として正しく数えられます。

Q
Q:文字列の中に「’」と「”」の両方を入れたい場合は?
A

A:エスケープ文字(\)を使うか、トリプルクォートを使用します。

# エスケープ文字を使用
text1 = "She said \"I'm happy!\""

# トリプルクォートを使用  
text2 = """She said "I'm happy!" """
Q
Q:文字列に特定の文字が含まれているか調べたい
A

A:inキーワードを使います。

text = "python programming"
if "python" in text:
print("pythonが含まれています")


まとめ

pythonの文字列は、ただの文字の集まりではなく便利な機能がたくさん詰まったデータ型です。

おさらい:

  • 文字列の作成:シングルまたはダブルクォートで囲む
  • 結合と繰り返し:「+」と「*」を使用
  • スライス:番号を指定して一部を取り出し
  • メソッド:split、replace、stripなど便利な機能
  • f文字列:変数を文字列に簡単に埋め込み

コメント

タイトルとURLをコピーしました