2018.10.13Python入門者向けに文字列の処理・使い方についてまとめました。アスキーコード【はじめに】文字列型の変数Pythonでは、文字列型の変数を次のように定義します。'TEST'文字列「TEST」をシングルクォーテーション(‘)、もしくはダブルクォーテーション(“)で括ってやり、変数aへ代入するだけです。【文字列の連結】+(プラス)記号Pythonでは、文字列の連結は四則演算の足し算と同じように+(プラス)を使います。【文字列の置換】replace「replace」関数で文字列を置換できます。この関数は、1つ目の引数に置換前の文字列、2つ目の引数に置換後の文字列を指定します。worldこの実行例では、文字列「wall」を「world」に置換しています。■【Python】文字列の置換(replace関数)【文字列の検索】「find」「index」「startswith」「endswidth」Pythonでは、文字列検索系メソッドとして「find」「index」「startswith」「endswidth」などがあります。それぞれの探索の特徴は以下のとおりです。指定した文字列があればindex(場所)を、ない場合は-1を返す。指定した文字列があればindex(場所)を、ない場合はエラーを返す。指定した文字列で始まるかどうか調べる。始まればTrue、そうでなければFalseを返す。指定した文字列で終わるかどうか調べる。始まればTrue、そうでなければFalseを返す。find部分文字列の検索。指定した文字列があればindex(場所)を、ない場合は-1を返す。-1index部分文字列の検索。指定した文字列があればindex(場所)を、ない場合はエラーを返す。foundstartswith指定した文字列で始まるかどうか調べる。始まればTrue、そうでなければFalseを返す。Falseendswith指定した文字列で終わるかどうか調べる。始まればTrue、そうでなければFalseを返す。文字列Pythonでは、数値を文字列へ変換するのに「str」関数を使います。数値Pythonでは、int関数、float関数で文字列を数値に変換します。以下のプログラムだと文字列と数値は連結できないのでエラーとなります。intしかしint関数やfloat関数で次のように文字列を数値に変換すると、数値同士の足し算となるのでエラーになりません。Pythonでは、文字列を大文字から小文字へ変換するメソッドとして「lower」があります。逆に小文字から大文字へ変換するメソッドとして「upper」があります。(lower、upper関数)【ハッシュ化】hashlibモジュールPython言語の標準ライブラリ・モジュール「hashlib」で文字列からハッシュ値を生成できます。このライブラリでは、MD5、SHA1、SHA224、SHA256、SHA384、SHA512のアルゴリズムで生成ができます。【文字列の分割】カンマ区切り、空白区切りPythonでは、「split」関数で文字列を分割できます。この関数は、引数に文字列を分割する区切り文字を指定します。すると、リスト形式で分割した結果が返ってきます。'world']この実行例では、カンマ「,」を区切り文字に指定して分割しています。split関数の引数に何も指定しない場合、空白(スペース、タブなど)で区切ることができます。Pythonでは、文字列を先頭(左)から削除するメソッドとして「lstrip」があります。逆に末尾(右)から削除するメソッドとして「rstrip」があります。(lstrip、rstrip関数)【正規表現】reモジュール正規表現とは、「文字列のパターンを示した式」です。通常、文字列を探索する場合は、「hello」や「100」などと直接単語や数値を検索します。この方法では例えば「5桁以上の数値」というように複雑な場合は探せません。このような場合に、正規表現を使うと簡単に検索パターンを作って探すことができます。正規表現の代表的なパターン式は以下の通りです。hel[lL]oと書くと、helloとhelLoを探索します。このように正規表現のパターン式を用いることで、複雑なパターンを簡単に記述できます。Pythonの標準モジュールreでは、パターン式と一致するデータを探すための関数としてmatch()、search()、findall()、finditer()の4種類が用意されています。Pythonとreを用いた正規表現による探索のサンプルコードを紹介します。matchmatch()は、文字列の先頭でパターンが一致するかを判定します。abcsearchsearch()は、パターンと一致する部分があるかどうかを判定します。一致する部分が複数ある場合は、最初の部分のみ返します。7):一致した位置を表示findallfindall()は、パターンと一致するすべての部分を判定します。(search()との違いは、一致した箇所をすべて取得します)注意点としては、探索結果をオブジェクトでなく配列(リスト)で返します。'defg']一致したデータfinditerfinditerは、パターンと一致する部分を判定します。これさえあれば、上の3つの関数でできることはすべてできます。アスキーコードPythonでは、chr、ord関数で「文字」と「アスキーコード(ascii)」を相互変換できます。ArticlesPython【Python】タプルの要素を部分取得(スライス)この記事では、Pythonでタプルの要素を指定した範囲内でスライスして取得する方法とソースコードについて紹介します。当記事では、状態フィードバックゲインをpython-controlで極配置法により求める方法について紹介します。Python【NumPy】整数乱数配列の生成Python言語とNumPyを用いて整数乱数配列を生成する方法をソースコード付きで解説します。Python【Python】datetimeモジュールで日付の増減この記事では、Pythonモジュール「datetime」で日付を増減させる方法についてソースコード付きで解説します。Python【Python/OpenCV】画像の回転(アフィン変換)この記事では、Python版OpenCVの「cv2.warpAffine」でアフィン変換を実装し、画像を回転する方法をソースコード付きで解説します。Python【Spyder】編集画面の背景を黒くするこの記事では、Python統合開発環境「Spyder」の編集画面の背景をダークテーマにする方法ついて紹介します。Python【NumPy】1つの配列と同じサイズで全ての要素が「0」「1」の配列を生成この記事では、Python言語とNumPyを用いて、1つの配列と同じサイズで全ての要素が「0」や「1」の配列を生成する方法をソースコード付きで解説します。プログラミング言語「Python」を学習するメリット(利点)を解説します。Python【Python】ビットコインのデータ分析・予測この記事では、Pythonを用いて、ビットコインのデータ分析や予測を行う方法をソースコード付きで解説します。Python【Python】2リンクマニピュレータの逆運動学シミュレーションPythonを用いて、2リンクマニピュレータ(2自由度アーム)の逆運動学をシミュレーションする方法をソースコード付きで解説します。Arduino【ラズベリーパイ3】シリアル通信でArduinoからデータ受信この記事では、RaspberryPi3のシリアル通信でArduinoからデータを受信する方法をソースコード付きで解説します。Python【Pygame】ブロック崩しのブロック作成この記事では、Pygameを用いてブロック崩しのブロックを作る方法とソースコードを解説します。(Series)Python用データ分析モジュール「Pandas」でラベル付き配列を生成する方法をソースコード付きで解説します。Python【NumPy入門】配列の生成方法(1次元、2次元、高速化など)PythonモジュールNumPyにおける配列の生成方法についてまとめました。numpy.random.binomialこの記事では、Python言語とNumPyを用いて、ポアソン分布を求める方法をソースコード付きで解説します。Python【Python】range型変数の使い方Pythonのrange型変数の使い方についてソースコード付きで解説します。Python【NumPy/Matplotlib】乱数のヒストグラム化この記事では、Pythonモジュール「NumPy「」Matplotlib」で乱数をヒストグラム化する方法をソースコード付きで紹介します。本ページでは、Python用制御工学モジュール「python-control」で伝達関数を状態方程式に変換する方法とサンプルコードついて解説します。PM文字列検索の部分に関する質問、失礼します。足りないと思うのですが、いかがでしょうか。読みやすくて学びやすいので重宝しています。ありがとうございます。PM※y0ma10n0de5k0様コメントありがとうございます。ご指摘いただいたとおり、)が抜けておりましたので修正いたしました。こちらこそ、ご指摘&応援メッセージをいただきありがとうございます。PMご指摘ありがとうございます。PMご指摘ありがとうございます。コメントをキャンセルメールアドレスが公開されることはありません。(FFT)で振幅スペクトルを計算2018.10.062020.01.25【Pygame入門】ゲームプログラミング【Python】2020.01.14【Python/OpenCV】赤・緑・青色の検出(HSV色空間)2019.08.26【WinPython】使い方・設定まとめ2019.01.222019.10.14【Python/OpenCV】グレースケール変換(cv2.cvtColor)2017.01.252020.01.27【Matplotlib】散布図の点の大きさ2017.02.24【Python/OpenCV】ガウシアンフィルタでぼかし・平滑化2019.11.082019.11.10【Python】C言語との記述法の違いを比較2017.09.072018.09.03【Python/OpenCV】大津の手法で二値化処理2019.11.05【Python/OpenCV】RGBからHSVに変換(cv2.cvtColor)2019.08.252020.01.27【NumPy】実数→整数(四捨五入・切り捨て・切り上げ)2017.09.17【NumPy】配列の大きさ(行数・列数)を取得2017.01.302019.05.05【NumPy】高速フーリエ変換とローパスフィルタでノイズ除去2020.01.202020.01.25タイトルとURLをコピーしました。