ロゴ

プログラミング初心者がアプリ開発を目指すブログ

【Python入門】Python 文字列の読み込み・検索 – Python初心者勉強記014

今回はPyhotnの文字列の読み込み・検索の方法を確認していきましょう。
文字列の検索や大文字・小文字の確認など頻繁に使うメソッドを解説していきます。

文字列の読み込み

文字列の各要素には、リストと同様に0はじまりのインデックスを使ってアクセスします。


>>> a = 'Japan'
>>> a[0]
'J'
>>> a[5]
Traceback (most recent call last):
  File "", line 1, in 
IndexError: string index out of range

文字列の検索

in演算子は指定した文字列を検索して、TrueまたはFalseを返します。
検索したい文字列 in 文字列


>>> 'ja' in 'japan'
True

文字列を検索して出現位置を調べるにはfindメソッド・rfindメソッド・indexメソッド・rindexメソッドを使います。
.find(検索文字列,開始位置,終了位置)
.rfind(検索文字列,開始位置,終了位置)
.index(検索文字列,開始位置,終了位置)
.rindex(検索文字列,開始位置,終了位置)

rfindとrindexは右側から検索を開始します。
検索文字列が見つからない場合find系は-1を返し、index系はValueErrorを返すという違いがあるので注意しましょう。

処理速度に関してはin演算子・index・findでほとんど差はありませんが、検索対象によってはrfindやrindexのほうが高速に動作すこともあります。


>>> 'abcbd'.find('b')
1
>>> 'abcbd'.rfind('b')
3
>>> 'abcbd'.rfind('e')
-1

countメソッドは検索文字が出現する回数を調べることができます。開始位置と終了位置を指定することで検索範囲を制限することもできます。
.count(検索文字,開始位置,終了位置)


>>> 'abcbd'.count('e')
0
>>> 'abcbd'.count('b')
2

開始文字・終了文字を調べるにはstartswithメソッド・endswithメソッドを使用します。
startswithメソッドは指定した文字が接頭辞であるかを調べ、endswithメソッドは指定した文字が接尾辞であるかを調べます。
.startswith(接頭辞,開始位置,終了位置)
.endswith(接頭辞,開始位置,終了位置)


>>> 'Japan'.startswith('J')
True
>>> 'Japan'.startswith('Ja')
True
>>> 'Japan'.endswith('an')
True

isalnumメソッドは文字列が全て英数文字であるかどうかを確認することができます。isalphaメソッドは文字列がアルファベットであるかどうかを確認します。


>>> '12Japan'.isalnum()
True
>>> '12Japan'.isalpha()
False
>>> 'Japan'.isalpha()
True

文字列が数字であるかどうかを確認するには、isdigitもしくはisnumericを使用します。isnumericメソッドはアラビア数字などもTrue扱いになります。


>>> '1'.isdigit()
True
>>> '-1'.isdigit()
False
>>> u'Ⅳ'.isdigit()
False
>>> u'Ⅳ'.isnumeric()
True

文字列について、islowerは全て小文字かどうか、isupperは全て大文字かどうか、istitleは単語の先頭が大文字かどうかを調べることができます。


>>> 'abc'.islower()
True
>>> 'abc'.isupper()
False
>>> 'ABC!?'.isupper()
True
>>> 'abc!?'.islower()
True

空白文字の確認を行うにはisspaceメソッドを使用します。文字列内の全ての文字が空白文字やタブ文字、改行文字の場合にはTrueを返します。また、空文字列の場合はFalseを返します。


>>> ''.isspace()
False
>>> '\t \n'.isspace()
True

Python入門講座の次の記事はこちら => 【Python入門】Python 文字列の更新方法 – Python初心者勉強記015

スポンサード リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA