Pyhonの基礎 ~文字列~
0.はじめに
こちらの記事ではPythonの文字列に関することを学べます。
プログラムの実装をするにあたって文字列の操作は非常に多く扱います。
文字列の操作方法や数値型の最後にあったような、違う型を扱う場合の注意点などもこちらで解説していきます。
1.文字列の型
数値型の時に確認した時と同じ方法でPythonではどのように扱われるのか確認します。
次の通りにコードを書いて実行してみましょう。
print(type("hello python"))
<class 'str'>
と返ってきましたね。
Pythonでは文字列はstr
として扱われますので覚えておきましょう。
また、str
はstring
の略になります。
他の言語では略さずstring
と正式名で扱われることもあるので、覚えておきましょう。
2.文字列の操作
プログラミングを組んでいくうえで、文字列の操作というは必須になっていきます。
特に次に操作はよく使うものなので、こちらの記事でも使い方を紹介していきますので
使い方を暗記する必要はないですが、
こんな文字列操作する方法があったな
程度には覚えておいてくれれば大丈夫です。
- 連結
- 分割
- 置換
- 検索
- 長さの取得
- フォーマット
- 型変換
2.1 連結
文字列のおける連携とは文字と文字をくっつけることを指します。
pythonにおける文字列の連結方法は+
を使用します。
具体例を挙げると次の通りです。
a = "私の好きな食べ物は"
b = "りんごです。"
print(a+b)
これを実行すると私の好きな食べ物はりんごです。
と表示されます。
これはaとbの変数にそれぞれの文字列を代入して、aとbを連結した結果になります。
2.2 分割
文字列における分割とは、特定の文字を区切りとして配列呼ばれるものに分割をします。
pythonで文字列を分割する方法はsplit()
を使用します。
実際によく使われるケースだと,
を区切り文字として扱われるケースが多いです。
では、具体例をもとに実行してみましょう。
a = "リンゴ,バナナ,ブドウ,イチゴ"
print(a.split(","))
このようにカッコの中に分割したい文字をして使用します。
すると次のように['リンゴ', 'バナナ', 'ブドウ', 'イチゴ']
配列(list型)型になり、,
で文字が分割されましたね。
2.3 置換
文字列における置換とは、特定の文字を指定した文字に置き換えます。
pythonで文字列を置換する方法はreplace()
を使用します。
実際によく使われるケースだと、スペースや改行コードを削除するなどで使用されるケースが多いです。
では、具体例をもとに実行してみましょう。
a = "私の 好き な食べ物は リンゴ です。"
print(a)
print(a.replace(" ", ""))
replaceには2つの引数を使用します。
1つめが置換したい特定の文字列
2つめが特定の文字列を置換したい文字列
をそれぞれ指定します。
今回の場合は
1つめに空白
2つめに空白のない空の文字列(擬似的に削除)
を指定しました。
また、今回はreplaceをした場合としない場合の比較のためにprint
を2つ書きました。
これで実行しますと
私の 好き な食べ物は リンゴ です。
私の好きな食べ物はリンゴです。
このように空白があるままの出力と
空白がない出力がされましたね。
このようにreplace
を使用すると文字列の置換が可能になります。
2.4 検索
文字列における検索とは、ある文字列の中に指定した文字が存在するか
もしくは、どの位置に存在するのかを検索してくれます。
pythonで指定した文字列が存在するかを確認する方法はin
を使用します。
pythonで指定した文字列の位置を確認する方法はfind()
を使用します。
実際によく使われるケースで、in
を使用するケースは指定した文字列がある場合は~する。
のように条件分岐する際に使用されるケースが多いです。
また、find()
に関しては、特定の文字以降は削除など、位置から何かしらの処理をする場合に使用します。
では、具体例をもとに実行してみましょう。
a = "僕はリンゴが好きです。"
# inを使ったケース
print("リンゴ" in a)
print("ブドウ" in a)
# findを使ったケース
print(a.find("リンゴ"))
print(a.find("ブドウ"))
これを実行しますと
True
False
2
-1
と返ってきます。
in
の場合は指定した文字が存在するかしないかの2択で返ってきます。
それがPythonの場合はTrue
またはFalse
で返ってきます。
True or False
のことをbool型と言います。
日本語でいう真偽という意味になります。
存在する場合はTrue(真)
存在しない場合はFalse(偽)
が返ってくるので、今回の例だとTrue,Falseの順番で返ってきます。
find
の場合は指定した文字がどの位置にあるのかを返します。
今回だとリンゴ
という文字が先頭から2番目にあるので、2
という数字を返します。
※プログラミングの先頭から文字や配列の順番を数える時0からカウントします。
また、ブドウ
のように検索したい文字が存在しなかった場合は-1
を返します。
2.5 長さの取得
文字列における長さの取得とは、指定した文字列の文字数を返します。
pythonで指定した文字列の文字数を確認する方法はlen()
を使用します。
実際によく使われるケースで、len
を使用するケースは何文字以上ある場合は~する。
のように条件分岐する際に使用されるケースが多いです。
では、具体例をもとに実行してみましょう。
a = "この文字列は12文字です"
print(len(a))
これを実行すると12
と返ってきます。
2.6 フォーマット
ここで定義しているフォーマットとは、文字列の中に含まれる変数を展開することです。
正直このままだと意味がわからないと思うので、実例をもとに解説をしていきます。
a = "30歳"
print("僕の年齢はaです。")
print(f"僕の年齢は{a}です。")
これを実行すると
僕の年齢はaです。
僕の年齢は30歳です。
このように出力されます。
何かしらで得た変数の値を文字列の中に組み込みたいケースといのが存在します。
その際に、使うのこのフォーマットを使ったやり方になります。
使い方はf"{変数名or関数}"
で組み込むことが可能です。
2.7 型変換
文字列における型変換とは、文字列扱いされている数字を数値型に変換します。
str→int型に変換することにより、Python基礎 ~数値~にあった計算をできるようにすることが可能になります。
実際に型変換が行われているかtype
を使って確認していきましょう。
str→int
だけでなくint→str
の逆バージョンもここでは実装しています。
a = "1"
b = 1
print(f"変換前: {type(a)} 変換後: {type(int(a))}")
print(f"変換前: {type(b)} 変換後: {type(str(b))}")
これを実行すると
変換前: <class 'str'> 変換後: <class 'int'>
変換前: <class 'int'> 変換後: <class 'str'>
このように出力されます。
int()
やstr()
で型が変換されたことが確認できましたね。
Discussion