Python

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

この記事では、Pythonの文字列の使い方について解説します。Pythonには、文字列を扱うための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)
>> True

print('マイク' in text)
>> False

文字列を生成する:str()

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

str(オブジェクト)

サンプル

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

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

print(str(year) + text)

実行結果

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

文字列のメソッド

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

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

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

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

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

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

サンプル

試しに、適当な文字列を置換してみます。

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

print(text)
print(replace_text)

実行結果

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

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

text = "いっぱい"

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

実行結果

おっぱお

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

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

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

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

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

サンプル

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

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

print(demon_slayer.split('/'))

実行結果

['炭治郎', '禰豆子', '善逸', '伊之助']
【Python】文字列を分割する方法この記事では、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の文字列の使い方を解説しました。

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

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

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』