文字列を使用する場合、いくつかのメソッドを使用して文字列を操作する方が便利です。count() メソッド、find() メソッド、index() メソッドなどの基本的なメソッドをいくつか取り上げて説明します。テスト方法、修正方法、検索置換方法の3つの観点から機能を実現します。
通常、文字列内の要素が出現する回数をカウントするには、 count() メソッドを使用します。要素が存在しない場合は、その要素が存在する回数を返します。は次のとおりです。
my_str.count(x)
my_str は取得する文字列名、x はカウントする文字です。
次の例を見てください。
>>>my_str'www.dotcpp.com'>>>my_str.count('w')3>>>my_str.count('.')2>>>my_str.count('p')2>>> my_str.count('*')0
返される数値は、文字列内にその文字が出現した回数です。「*」が存在しないため、戻り値は 0 です。
find メソッドは、指定された要素が文字列に含まれているかどうかを取得します。要素が含まれている場合は、その文字が存在しない場合は、-1 を返します。
my_str.find(x)
my_str は取得する文字列名、x は探している要素です。
次の例を見てください。
>>>my_str'www.dotcpp.com'>>>my_str.find('w')#文字 w0 を検索>>>my_str.find('p')#文字 p8 を検索>>>my_str.find( 'm ')#文字 m13 を検索>>>my_str.find('*')#文字 * を検索します。* は存在せず、-1-1 を返すためです。
キーワード in を使用して、指定した文字が指定した文字列に存在するかどうかを問い合わせることもできます。指定した文字が文字列に存在する場合は True を返し、存在しない場合は False を返します。
次の例を見てください。
>>>my_str'www.dotcpp.com'>>>'p'inmy_strTrue>>>'w'inmy_strTrue>>>'.'inmy_strTrue>>>'*'inmy_strFalse
ただし、この方法では、アクセスしたい要素が存在するかどうかを知ることができるだけで、その場所を取得することはできません。学習プロセス中に独自の方法を選択して解決することができます。
Index() メソッドは find() メソッドと似ていますが、指定された文字が取得されると、その文字が最初に出現するインデックス位置も返します。ただし、文字が取得できない場合は例外が発生します。スローされる構文形式は次のとおりです。
my_str.index(x)
my_str は取得する文字列名、x は検索する要素です。
次の例を見てください。
>>>my_str='www.dotcpp.com'>>>my_str.index('w')0>>>my_str.index('o')5>>>my_str.index('*')Traceback(mostrecentcalllast ):File<stdin>,line1,in<module>ValueError:substringnotfound
既存の要素が見つかると、文字列内のそのインデックス位置が返されます。最後の '*' は見つからないため、エラーが報告されます。
上記 3 つのメソッドは省略された形式であり、標準ドキュメントでは次の形式になります。
my_str.count(x[,start[,end]])my_str.find(x[,start[,end]])my_str.index(x[,start[,end]])
上記の説明では括弧内の内容については言及しませんでしたが、Pythonのドキュメントでは「[]」はその部分が省略できることを意味しているため、この部分は省略できますが、これを使用する場合はそのまま使用できます。 start はインデックスの開始位置、end はインデックスの終了位置ですが、end は含まれません。
例を通して標準形式を説明しましょう。
>>>my_str='www.dotcpp.com'>>>my_str.index('o',6,13)#6-12 の間で o12 を検索>>>my_str.count('w',0,5 )# 0 ~ 4 の間に w が存在する回数を数えます 3>>>my_str.find('c',3,9)#Find 77 between 3 ~ 8
標準形式の使用は複雑に見えますが、使用すると非常に便利です。