この記事では、Pythonの文字列の使い方について解説します。
Pythonには、文字列を扱うためのstr
型というデータ型が用意されています。str
型は、シーケンス型の一種で「テキストシーケンス型」とも呼ばれます。
シーケンス型については以下の記事を参照してください。
Linkシーケンスの使い方と特徴を解説
それでは、文字列の使い方を見ていきましょう!
文字列は、シングルクォーテーション('
)、またはダブルクォーテーション("
)で囲むことで表現することができます。
s = ''
s = ""
文字列型のコンストラクタstr()
を使っても生成できます。
s = str()
クォーテーションの間に文字を記述することで初期値を指定できます。
s = '文字列'
s = "文字列"
クォーテーション3つで囲むことで複数行に渡って文字列を記述できます。
s = '''文字列
です'''
s = """文字列
です"""
また、文字列には値を埋め込むこともできます。
name = '田中太郎'
age = 20
s = f'名前: {name}、 年齢: {age}'
値の埋め込みについては以下の記事を参照してください。
Link文字列リテラルについて解説します
文字列を表現するにはクォーテーションを使うことがわかりました。
Pythonの文字列型には以下の3つの演算が用意されています。
文字列同士を+
演算子で連結させることができます。
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(オブジェクト)
以下のコードでは、int
型の値から文字列を生成し、+
演算子で連結しています。
year = 199
text = 'X年、世界は核の炎に包まれた!'
print(str(year) + text)
実行結果
199X年、世界は核の炎に包まれた!
str
型には便利なメソッドがたくさん実装されています。ここでは、その中でもよく使うメソッドを紹介します。
replace()
メソッドを使うことで指定した文字を置換できます。
str.replace(old, new[, count])
old
引数をnew
引数で置換した文字列を新たに生成して返すcount
引数を指定することで先頭からいくつ置換するかを指定できる。省略した場合は、当てはまる文字すべてを置換する以下のコードでは、「ヤムチャ」を「クリリン」に変換した文字列を生成しています。
text = 'ヤムチャのことか--!!'
replace_text = text.replace('ヤムチャ', 'クリリン')
print(text)
print(replace_text)
実行結果
ヤムチャのことか--!!
クリリンのことか--!!
デフォルトでは、条件に当てはまる全ての文字を置換するので注意しましょう。
text = "いっぱい"
print(text.replace('い', 'お'))
実行結果
おっぱお
split()
メソッドを使うことで指定した文字で文字列を分割できます。
str.split(sep=None, maxsplit=-1)
sep
引数に指定した文字列で区切ったリストを返すsep
引数がNone
の場合は空白文字で分割するmaxsplit
引数を指定することで最大分割回数を指定できる。マイナスの値が指定された場合は分割できる箇所をすべて分割する以下のコードでは、/
で文字列を分割します。
demon_slayer = '炭治郎/禰豆子/善逸/伊之助'
print(demon_slayer.split('/'))
実行結果
['炭治郎', '禰豆子', '善逸', '伊之助']
startswith()
メソッドは先頭が、endswith()
メソッドは末尾が任意の文字と一致するか判定することができます。
# 先頭
str.startswith(prefix[, start[, end]])
# 末尾
str.endswith(suffix[, start[, end]])
以下はstartswith()
メソッドの説明ですが、endswith()
メソッドも使い方は同じです。引数名と末尾を判定することが異なるので注意してください。
prefix
引数と一致するかどうかを判定するprefix
引数にはタプルで複数の文字を指定することもできる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()
メソッドで小文字にすることができます。大文字・小文字が無い文字に使用しても意味はありません。
text = 'Umbrella'
print(text.upper())
print(text.lower())
実行結果
UMBRELLA
umbrella
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の文字列の使い方を解説しました。
文字列はよく使用されるデータ型なのでメソッドなども充実しています。しかし、まとめて覚えるのは大変なので忘れてしまったらその都度確認してくださいね!
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ
View Comments