Pythonで扱われる型で、文字列型というのがあります。
前回、Hello Worldを表示する際に、少しだけ触れました。
本記事は、文字列型に焦点を当てざっくりと紹介していきます。
Python学習者の少しでも参考になれば、また助力になれば幸いです。
この記事で興味を持たれた方は、はじまり編も一緒にご覧ください。
目次
Pythonで文字列型いろいろ
Pythonでは、文字列型を表す際には、
文字列として扱いたい内容を‘(シングルクォーテーション)
または“(ダブルクォーテーション)で囲みます。
例えば、Pythonといった内容を文字列として扱いたい場合、
“Python” または ‘Python’と表記します。
例) xという変数に、文字列Pythonを代入してみます。
1 |
x = 'Python' # "Python"でも可 |
※ 変数とは、値を入れる箱のようなものです。
複数行にわたって文字列を変数に格納
例えば、複数行にわたって値を渡したい場合は、
‘(シングルクォーテーション)または”(ダブルクォーテーション)を3つ連ねます。
1 2 3 |
x = """ Hello World """ |
これをprint()関数で出力すると、
1 2 3 4 5 |
print(x) #出力結果 # Hello #World |
文字列の連結
文字列を連結させたい場合は、連結させたい文字列に”+”記号を付けます。
1 |
x = "Hello" + "World" |
ここでは、変数xに”Hello”と”World”を連結した文字列を代入しています。
ちなみに変数に格納した文字列の連結もできます。
1 2 3 |
x = "Hello" y = "World" z = x + y # HelloWorld |
変数xに”Hello”を代入、変数yに”World”を代入
変数zに変数xと変数yを足した結果を代入しています。
文字列の繰り返し
文字列を繰り返し使いたい場合は、繰り返したい文字列に「* 回数」を付けます。
1 |
"Python" * 3 # PythonPythonPython |
Pythonという文字列を3回繰り返しています。
ちなみに変数に格納した場合も可能です。
1 2 |
x = "Python" x = x * 3 |
ちなみに、x = x * 3の表記は、下の表記も同等です。
変数xにxを3回繰り返した値を代入するといった意味になります。
1 |
x *= 3 |
文字列の追加
既にある文字列に対して、新たに文字列を追加したい場合、下のようになります。
例) 既にある変数xに対して、新たに文字列”Python”を追加したい。
1 2 3 |
x = "Hello" # xに対して文字列"Python"を追加したい x += "Python" # x = x + "Python"も同じ |
文字列の置き換え
文字列を置き換えたい場合、”replace”メソッドを使います。
構文としては、
文字列型.replace(“置き換えたい文字列”,”置き換える文字列”)になります。
例) 変数xに文字列”HelloWorld”が代入されています。
変数xの”World”を”Python”に置き換えたい。
1 2 |
x = "HelloWorld" x = x.replace("World", "Python") # HelloPython |
置き換えたい文字列を”World”
置き換える文字列を”Python”としています。
文字列の検索
ある文字列を検索したい場合、
- 文字列の先頭が任意の文字であるか調べる → startswithメソッド
- 文字列の末尾が任意の文字であるか調べる → endswithメソッド
- 文字列中に任意の文字が含まれているか調べる
- 検索した文字列のインデックス(索引)を調べる → findメソッド、indexメソッド
と用途によって複数の検索方法が存在します。
<startswith>
【構文】 文字列.startswith(“検索したい文字列”)
1 2 3 |
x = "HelloWorld" print(x.startswith('H')) # True print(x.startswith('W')) # False |
検索した結果を、True もしくは Falseで返してくれます。
True/Falseは真偽値と呼ばれ、Pythonでは、Boolean型として扱われます。
真をTrue、偽をFalseとされています。
startswithは先頭の文字が任意の文字でなければ、Falseを返します。
<endswith>
【構文】 文字列.endswith(“検索したい文字列”)
1 2 3 |
x = "HelloWorld" print(x.endswith('H')) # False print(x.endswith('d')) # True |
startswith同様、結果を真偽値で返してくれます。
startswithと違う点は、検索の開始位置になります。
startswithでは、先頭
endswithでは、末尾からとそれぞれ異なります。
<find,index>
【構文】 文字列.find(“検索したい文字列”, [開始位置], [終了位置])
【構文】 文字列.index(“検索したい文字列”, [開始位置], [終了位置])
※[開始位置]や[終了位置]は省略できます。
1 2 3 4 5 6 |
x = "HelloWorld" print(x.find('r', 0)) # 7 print(x.find('e', 2)) # -1 print(x.index('r', 0)) # 7 print(x.index('e', 0)) # 例外 |
find, indexメソッドは、検索した結果を、検索した文字列がある位置で返してくれます。
コード中の”r”という文字列は、先頭から7番目にあったということになります。
ここで、疑問に思うかもしれません。”r”は先頭から、8番目じゃないの?ということに。
Pythonでは、文字列を先頭から数える時、1からではなく0から開始になるのです。
イメージとして、文字列は下図のように1つ1つ箱に入っている……感じです。
検索したい文字列が見つからない場合は、-1を結果として返します。
indexメソッドでは、-1ではなく、例外エラーとして結果を返してきます。
1 2 3 4 |
例外が発生しました: ValueError substring not found File "コードファイル", 行数, in <module> print(x.index("e", 2)) |
文字列の大小変換
文字列を大文字や小文字に変換したい場合、
それそれupperメソッド、lowerメソッドを使います。
【構文】 文字列.upper()
【構文】 文字列.lower()
1 2 3 |
x = "HelloWorld" x = x.upper() # HELLOWORLD x = x.lower() # helloworld |
文字列の長さ
文字列の長さを知りたい場合、len関数を使います。
【構文】 len(“長さを知りたい文字列”)
1 2 |
x = "HelloWorld" print(len(x)) # 10 |
おわりに
ざっくりと文字列型について触れてきました。
文字列の連結や繰り返しは、基本的なので覚えておくといいと思います。
また、今回紹介した文字列型を扱う際に便利なメソッドや関数は、
これら以外にもたくさんあります。
処理の用途に応じて使い分けてもらえたらなと思います。
中でも、len関数やstartswith,findメソッドは個人的によく使います。
今後出てくる型においても組み合わせて使えるので便利です。
最後まで読んでいただき、ありがとうございます。
・こちらの書籍を参考にPythonの理解を深めました。