こんにちは!
ENHANCERのPengです!
今回は前回に引き続き文字列操作に使う便利なメソッドをご紹介したいと思います!
前回は文字列操作を行うためにいくつかメソッドをご紹介しました。
今回の記事はその続きとなるので、前回の記事をご覧になっていない方は下記リンクからどうぞ。
今回の記事も最後に問題を用意しているので、自分の理解度チェックに役立ててもらえれば幸いです。
また、今回の文章でご紹介したコードはGitHubに公開しておきますので、問題の答え合わせなど、コードを見たい方は記事の最後にリンクを貼っておきますので、そちらからよろしくお願いします。
では、今回もGoogle Colaboratoryを使って進めていきます!
準備はいいですか?
目次
文字列とは
簡単に文字列について復習しましょう。
文字列はダブルクォーテーションで囲まれたもので、これによりPythonは文字列だと判断します。
"こんにちは!"
‘こんにちは!’
そして、文字列のなかの特定の文字を出力したい場合は、そのインデックス番号を指定してあげればよかったというものでした。
my_name = "Peng"
my_name[0]
‘P’
思い出しましたか?
それでは今日の本題に入っていきましょう!
文字列操作に便利なメソッド
メソッドは [○○.upper()] のように、変数や値の後につけて呼び出すものでしたね。
さあ、さっそく見ていきましょう!
文字列の最初と最後の空白を除去する
文字列の最初と最後の空白を除去するためには、strip() を使います!
your_name = " 君の名前は "
your_name = your_name.strip()
your_name
‘君の名前は’
このように、文字列と最初と最後に間が空いている場合、たとえそれが演出上必要だとしても strip() は空白を除去してくれます。
文字列の特定の文字を入れ替える
文字列のうち、特定の文字だけ入れ替えたいと思ったことはありませんか?
replace() がその悩みを解決してくれます。
character = "アソパソマソ"
character = character.replace("ソ", "ン")
character
‘アンパンマン’
新しい顔をゲットできましたね。
文字列の中の特定の文字を探す
文字列の中の、ある特定の文字列の位置を知りたいときは index() を使います。
"Peng".index("e")
‘1’
ここでは “e” がその文字列の中でどこにあるかを示しています。
文字列は一文字目が「0」でしたね。ということは “e” は 1 となります。
index()は変数に文字列を入れた場合でも動作します。
name = "Takeshi"
name.index("T")
‘0’
含まれていない文字を指定すると、Errorが表示されます。
name.index("x")
‘ValueError: substring not found’
この対処法として、文字が含まれていなかった場合に出力されるコードを指定することもできます。
try:
print(name.index("x"))
except:
print("この文字列にxはありません")
‘この文字列にxはありません’
ここで出てきた「try ~ except文」はErrorが出るかもしれないコードを扱うときに便利です。
tryの方にErrorが出るかもしれないコード(Errorが出なければ実行されるコード)を、exceptのほうにErrorの場合に出力されるコードを書くことができます。
メソッド以外の文字列操作
メソッドの説明はここまでとなります!
ここからはメソッド以外で文字列を操作する方法をいくつかご紹介します!!
文字列に特定の文字が入っているか確かめる
in演算子を使うと、指定した文字を文字列が含んでいるか調べることができます。
含んで入れば「True」含んでいなければ「False」を返します。
"pen" in "I have a pen."
‘True’
"apple" in "I have a pen"
‘False’
文字列を改行する
文字列を改行する場合には「\n
」をいれます。
print("ホップ\nステップ\nジャンプ")
ホップ
ステップ
ジャンプ
ここでは「\n
」が改行のサインとなり、入れたところで改行されます。
ここで使う「\
(バックスラッシュ)」はWindowsの場合「¥」と同じ意味を持ちます。
ただし、macOSの場合は別のものとして認識される点に注意が必要です。
文字列の特定の文字列を取り出す
ここから行う操作のことを「スライス」ともいいます。
スライスでは「ここからここまでの文字列を取り出す」といったような操作ができます。
たとえばこんな感じ。
dish = "昨日の夕食はカレー"
dish[0:5]
‘昨日の夕食’
ここで0を開始インデックス、5を終了インデックスといいます。
最初からある文字まで取り出したい場合は最初の「0」を省略することも可能です。
#最初から7文字目まで
dish[:6]
‘昨日の夕食は’
逆にある文字から最後までの文字を取り出したいという場合は後を省略します。
#3文字目から最後まで
dish[3:]
‘夕食はカレー’
また、このスライスはリストに対しても行うことができます。
pur = ["ジャガイモ", "ニンジン", "タマネギ", "牛肉", "ルー"]
pur[0:4]
[‘ジャガイモ’, ‘ニンジン’, ‘タマネギ’, ‘牛肉’]
さて、皆さんこれまで少しずつ感じていたかもしれませんが、ここで何かおかしなことに気が付きませんか?
そう、ルーを買い忘れています。
リストは最初の文字がインデックス0、そこからひとつずつインデックスが増えていくため、0から4までであればルーも買えそうな気がします。
しかし、スライスでは終了インデックスの一つ前までしか出力されないのです。
ということはすべての食材を購入するにはこのように記載すればよいわけです。
pur = ["ジャガイモ", "ニンジン", "タマネギ", "牛肉", "ルー"]
pur[0:5]
[‘ジャガイモ’, ‘ニンジン’, ‘タマネギ’, ‘牛肉’, ‘ルー’]
これでおいしいカレーが食べられます。
隠し味が欲しい方は適宜追加するとよろしいかと思います。
練習問題
さあ、ここまでやってきた内容を活かして練習問題を解いてみましょう!
- 文字列 “I have a pen” の a を @に変えてみましょう。
- 自分の名前をローマ字で入力し、”a”が出現するインデックス番号を出力しよう。また、”a”が入っていない場合に出力される文字列を作ろう。
- 相手に血液型を訪ね、入力値を大文字にした後、AB型の時にある文字を出力し、それ以外の時にある文字を出力するコードを書こう。もし余力があれば、それぞれの血液型の入力に対してそれぞれメッセージを書こう。
- Pythonとい文字列で「P」から「t」までを出力するコードを書こう。
おわりに
文字列操作の方法-便利なメソッド②-はいかがだったでしょうか。
もはや途中からメソッド以外の方法の紹介となってしまいましたが、どれも非常に便利なものばかりです。
文字列操作の方法はその他多数の便利なメソッドたちがいるので、調べてみると面白いと思います。
冒頭でもお話ししましたが、今回使ったコード、問題の解答例はGitHubにアップしてありますので、以下のリンクからそちらもあわせてご確認ください!
GitHubについては場合はこちらの記事にまとめてあります!
何かわからない場合は確認してみるといいかもしれません。
またはこちら!
それではまた次回の記事でお会いしましょう!
お疲れ様でした!!
ENHANCER Peng
“【Python初心者】文字列操作の方法 -便利なメソッド②-” への1件の返信