Python

【Python】文字列の使い方【str型】

この記事では、Pythonの文字列の使い方について解説します。

Pythonには、文字列を扱うためのstr型というデータ型が用意されています。str型は、シーケンス型の一種で「テキストシーケンス型」とも呼ばれます。

シーケンス型については以下の記事を参照してください。

【Python】シーケンスの使い方と特徴を解説この記事では、Pythonのシーケンス(sequence)について解説します。シーケンスとは、文字列やリストのような順番を持った複数の要素をまとめて扱える型のことを言います。シーケンス特有の演算も定義されているので、確認していきましょう!...

それでは、文字列の使い方を見ていきましょう!

文字列の基本的な使い方

文字列は、シングルクォーテーション(')、またはダブルクォーテーション(")で囲むことで表現することができます。

s = ''
s = ""

文字列型のコンストラクタstr()を使っても生成できます。

s = str()

クォーテーションの間に文字を記述することで初期値を指定できます。

s = '文字列'

s = "文字列"

クォーテーション3つで囲むことで複数行に渡って文字列を記述できます。

s = '''文字列
です'''

s = """文字列
です"""

また、文字列には値を埋め込むこともできます。

name = '田中太郎'
age = 20

s = f'名前: {name}、 年齢: {age}'
【Python】文字列リテラルについて解説しますこの記事では、Pythonの文字列リテラルについて解説します。リテラルとは、ソースコードに直接記述された値のことです。つまり、文字列リテラルとは ソースコードに直接記述された文字列のこと です。では、文字列リテラルの使い方を見ていきましょう!...

サンプル

試しに文字列を生成して出力してみます。

s = '文字列'
print(s)

s = '''複数行
文字列'''
print(s)

実行結果

文字列
複数行
文字列

文字列の演算

Pythonの文字列では以下の3つの演算が用意されています。

  • 連結(+)
  • 繰り返し(*)
  • 含まれるかどうか(in)

連結

文字列同士を+演算子で連結させることができます。

text1 = '昔はお前のような冒険者だったが、'
text2 = '膝に矢を受けてしまってな...。'

# 連結(文字列 + 文字列)
print(text1 + text2)

実行結果

昔はお前のような冒険者だったが、膝に矢を受けてしまってな...。

繰り返し

*演算子を使うことで指定した整数の数だけ繰り返した文字列が生成されます。

text = 'Hello'

# 繰り返し(文字列 * 整数)
print(text * 3)

実行結果

HelloHelloHello

含まれるかどうか

in演算子を使うことで左辺の文字列が右辺の文字列に含まれているか判定することができます。含まれていればTrue、含まれていなければFalseが返されます。

text = 'アイザック,グレゴリー,マルコ,ミゲル,ウォーリー,マシュー'

# 含まれるかどうか (検索したい文字 in 文字列)
print('ウォーリー' in text)

print('マイク' in text)

実行結果

True
False

文字列に変換:str()

str()の引数に他の型のオブジェクトを指定することで文字列に変換できます。

str(オブジェクト)

以下のコードでは、int型の値から文字列を生成し、+演算子で連結しています。

year = 199 
text = 'X年、世界は核の炎に包まれた!' 

print(str(year) + text)

実行結果

199X年、世界は核の炎に包まれた!

文字列型のメソッド

str型には便利なメソッドがたくさん実装されています。ここでは、その中でもよく使うメソッドを紹介します。

任意の文字で置換する:replace()

replace()メソッドを使うことで指定した文字を置換できます。

str.replace(old, new[, count])

文字列中の全てのold引数をnew引数で置換した文字列を新たに生成して返します。

オプション引数のcount引数を指定することで先頭からいくつ置換するかを指定できます。省略した場合は、当てはまる文字すべてを置換します。

text = 'ヤムチャのことか--!!'
replace_text = text.replace('ヤムチャ', 'クリリン')

print(text)
print(replace_text)

実行結果

ヤムチャのことか--!!
クリリンのことか--!!

デフォルトでは、条件に当てはまる全ての文字を置換するので注意しましょう。

text = "いっぱい"

print(text.replace('い', 'お'))

実行結果

おっぱお

任意の文字で分割する:split()

split()メソッドを使うことで指定した文字で文字列を分割できます。

str.split(sep=None, maxsplit=-1)

sep引数に指定した文字列で区切ったリストを返します。sep引数がNoneの場合は空白文字で分割します。

maxsplit引数を指定することで最大分割回数を指定できます。マイナスの値が指定された場合は分割できる箇所をすべて分割します。

以下のコードでは、/ で文字列を分割します。

demon_slayer = '炭治郎/禰豆子/善逸/伊之助'

print(demon_slayer.split('/'))

実行結果

['炭治郎', '禰豆子', '善逸', '伊之助']
【Python】文字列を分割する方法【split】この記事では、Pythonで文字列を分割する方法を解説します。取得した文字列をうまいこと分割することで、必要な部分のみを抜き出してデータ化したり、見やすく整形したりすることができます。それでは、文字列の分割方法を見ていきましょう!...

先頭・末尾の文字が任意の文字と一致するか:startswith()、endswith()

startswithメソッドは先頭が、endswithメソッドは末尾が任意の文字と一致するか判定することができます。

# 先頭
str.startswith(prefix[, start[, end]])

# 末尾
str.endswith(suffix[, start[, end]])

startswith()メソッドは、先頭の文字がprefix引数と一致するかどうかを判定します。prefix引数にはタプルで複数の文字を指定することもできます。(endswithメソッドも使い方は同じです)

オプション引数でどこから(start)どこまで(end)を検索するか指定できます。

サンプル

以下の例では、文字列がHTMLの見出しかどうかを判定しています。

midasi1 = '<h2>驚愕!アプリでダイエット!?一ヶ月で30kg落とす方法とは!?</h2>'
text = '<p>ウンタラカンタラ大学で『努力0!』『費用0!』で痩せる方法が発見されたのを知っていますか?</p>'
midasi2 = '<h3>ポイントは食事を取らないこと</h3>'

midasi = ('<h2>', '<h3>')

print(midasi1.startswith(midasi))
print(text.startswith(midasi))
print(midasi2.startswith(midasi))
print()

midasi = ('</h2>', '</h3>')

print(midasi1.endswith(midasi))
print(text.endswith(midasi))
print(midasi2.endswith(midasi))

実行結果

True
False
True

True
False
True

大文字・小文字にする:upper()・lower()

upper()メソッドで大文字、lower()メソッドで小文字にすることができます。大文字・小文字が無い文字に使用しても意味はありません。

text = 'Umbrella'

print(text.upper())
print(text.lower())

実行結果

UMBRELLA
umbrella

先頭・末尾の文字の削除:lstrip()・rstrip()

lstrip()メソッドは先頭から、rstrip()メソッドは末尾から文字を削除できます。

# 先頭から削除
str.lstrip([chars])

# 末尾から削除
str.rstrip([chars])

chars引数に指定された文字が削除されたコピーを返します。

chars引数には、除去される文字の集合を指定します。chars引数が省略されるかNoneを指定された場合は、空白文字が削除されます。

サンプル

試しに文字を指定し、削除してみます。

s = 'オレのターン!ドロー!'

print(s.lstrip('オレの'))

# 文字の並びは関係ない
print(s.lstrip('レのオ'))

実行結果

ターン!ドロー!
ターン!ドロー!

引数に何も指定しなければ連続している全ての空白が削除されます。

text = '    ソラシロ:    '
race = 'イマニティ'

# 通常
print(text + race)
# 先頭の空白の削除
print(text.lstrip() + race)
# 末尾の空白の削除
print(text.rstrip() + race)
# 先頭・末尾の空白の削除
print(text.lstrip().rstrip() + race)

実行結果

    ソラシロ:    イマニティ
ソラシロ:    イマニティ
    ソラシロ:イマニティ
ソラシロ:イマニティ

その他の使い方

文字列にはその他にも以下のような処理が可能です。

まとめ

この記事では、Pythonの文字列の使い方を解説しました。

文字列はよく使用されるデータ型なのでメソッドなども充実しています。しかし、まとめて覚えるのは大変なので忘れてしまったらその都度確認してくださいね!

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ