- 公開日: 2018年05月29日
【Python入門】文字列を編集できる関数のまとめ
今回は、文字列の基礎学習を終えた方を対象に、Pythonでできる文字列の編集機能やチェック機能をご紹介させて頂きます。
チョット地味な学習かもしれませんが、知っているとプログラムの応用が効くと思いますよ。
- 関数を使わない文字列編集機能
- エスケープの\
- オフセットの[]
- 繰り返しの*
- 関数を使ってPythonの文字列を編集
- 文字列を分割できる関数split()
- 文字列を結合できるjoin()
- 文字列を大文字・小文字に変換できるいろいろな関数
- 文字列の表示位置を変更できる関数senter()、ljust()、rjust()
- 文字列を置き換えることができる関数replace()
- 文字列のデータを調べる関数
- 文字列の構成をチェックする機能一覧
- 文字列の長さを取得できる関数len()
- 特定文字が何個含まれているか確認できる関数count()
- 特定文字が何文字目に登場するか確認できる関数find()
- 特定文字が最後から何文字目に登場するか確認できる関数rfind()
- 特定文字が何回登場するか確認できる関数count()
- まとめ
関数を使わない文字列編集機能
まずはじめに関数を使わなくても文字列を編集できる機能がいくつかありますので、ご紹介させて頂きます。
エスケープの\
文字列の改行やスペースを行いたい時に「エスケープ」が役立ちます。エスケープでよく使う機能をご紹介しますね。
■文字列を改行■
text="わたしは\nPythonを\n学習しています"
print(text)
■文字列にタブスペース■
text="わたしは\tPythonを\t学習しています"
print(text)
■文字列にクォーテーションを表示■
文字列の表示には、 print("テキスト") や print('テキスト') などダブルクォーテーションもしくはシングルクォーテーションで文字列を囲みますよね。それでダブルで囲った場合は、文字列にダブルクォーテーションが使えない、シングルで囲った場合はシングルが使えないという弊害ありましたが 、エスケープの活用でその問題を回避できます。
text="わたしは\"Python\"を学習しています"
print(text)
text2='わたしも\'Python\'を学習していますよ'
print(text2)
オフセットの[]
角かっこの [] を使うことで文字列の読み込み範囲を変更できます。
text="わたしはPythonを学習しています"
text[4] #特定の文字
text1="わたしもPythonを学習しています"
text[4:] #4文字以降を表示
他にも [] 内の数字の組み合わせや -の活用で読み込み範囲を操れます。いろいろ試してみて下さい。
繰り返しの*
アスタリスクの * を使うことで、文字列を繰り返すことができます。
text="わたしは\"Python\"を学習しています\n"*3
print(text)
関数を使ってPythonの文字列を編集
これまではPythonの関数なしで文字列を操作してきましたが、ここからは関数を使っていろいろ文字列を操っていきたいと思います。
文字列を分割できる関数split()
一つの文字列の中に含まれる特定のキーワードもしくは記号を指定して、文字列を分割することができます。
text="わたしは、Pythonを、学習しています"
text.split("、")
文字列を結合できるjoin()
先ほどの文字列を分割する split() とは逆に、文字列をくっつける関数もあります。
list=['わたしは', 'Pythonを', '学習しています']
text="+".join(list)
print(text)
文字列を大文字・小文字に変換できるいろいろな関数
時には英字を大文字や小文字などに変換する必要がありますよね。いろいろな方法がありますので、順番にご紹介させて頂きます。
■文頭文字を大文字に■
こちらは英文対象の処理プログラムになります。capitalize()
関数を使うことで文頭文字を自動的に大文字にしてくれます。これは外部のtextファイルに対しても有効で、文字の自動処理などに活かせそうです。
text="i am learning Python..."
text.capitalize() 文頭文字を大文字に
英文のみ対象
■単語をタイトルケースに■
ブログタイトルのように、文頭だけではなく、全ての単語の最初の文字を大文字に変える方法もあります。title()関数を使いますね。
text="i am learning python..."
text.title() #文頭文字を大文字に
英語の単語のみ対象
■すべての英語を小文字から大文字に■
ちょっとユースケースが思いつかないですが、英語の文字列をすべて大文字に変換する関数 upper()
もあります。
text="i am learning python..."
text.upper() #小文字を大文字に
英語の単語のみ対象
■すべての英語を大文字から小文字に■
先ほどの upper
と逆で、大文字を小文字に変換する関数 lower
もあります。
text="I AM LEARNING PYTHON..."
text.lower() #大文字を小文字に
英語の単語のみ対象
■英語の文字を大小逆転■
一応英語を大文字から小文字、小文字から大文字に変換できる関数 swapcase
があります。
text="I am Learning Python..."
text.swapcase() #大小逆転
英語の単語のみ対象
文字列の表示位置を変更できる関数senter()、ljust()、rjust()
Pythonの学習を進めていくと、「演算結果の表示位置を変えたい」場面も出てくると思います。 表示位置を変える関数をご紹介しますね。
■中央表示 center()■
text="わたしはPythonを学習しています"
text.center(30) #30文字分のスペース中央に表示
■左寄せ表示 ljust()■
text="わたしはPythonを学習しています"
text.ljust(30) #30文字分のスペース左端に表示
■右寄せ表示 rjust()■
text="わたしはPythonを学習しています"
text.rjust(30) #30文字分のスペース右端に表示
文字列を置き換えることができる関数replace()
文字列内の特定キーワードを他の文字に変換する機能として、関数replace()が用意されています。
text="わたしはPythonを学習しています"
text.replace("Python","Java")
文字列内のキーワードはすべて置換されます。
文字列のデータを調べる関数
文字列の構成をチェックする機能一覧
アプリケーションなどの開発を行う場合、入力値が正しいかどうかチェックする機能が必要です。そんな場面で役立つ関数にブール型(ブール値、ブール演算子とも)がありますね。真偽の2択で結果を出力してくれます。
関数 | 内容 |
---|---|
isalnum() | 文字列は英数字のみで構成されます(記号なし) |
isnumeric() | 文字列は漢数字のみで構成されています(記号なし) |
isalpha() | 文字列はアルファベット文字のみで構成されます(記号なし) |
islower() | 文字列のアルファベットはすべて小文字です |
isnumeric() | 文字列は数字のみで構成されます |
isspace() | 文字列は空白文字のみで構成されます |
istitle() | 文字列がタイトルの場合 |
isupper() | 文字列の英字はすべて大文字です |
number = "5"
text = "I'm learning Python"
print(number.isnumeric()) #文字列は数字だけ?
print(text.isnumeric()) #文字列は数字だけ?
文字列の長さを取得できる関数len()
関数len()を使うと文字列内の文字数を簡単に取得できます。こちらは日本語の文字列にも対応。
source="私はPythonを勉強しています"
text="I am learningPython"
print(len(source))
print(len(text))
今回 jupyter を使ってコードを実行、ご紹介してきましたが、何故か jupyter では len() 実行時、エラーがでます。解決できなかったため、別の方式で紹介させて頂いています。
特定文字が何個含まれているか確認できる関数count()
文字列の中で何回同じキーワードが使われたか、関数count()で簡単にチェックすることができます。
text="わたしはPythonを学習しています、僕もPythonを学習しています"
text.count("Python")
特定文字が何文字目に登場するか確認できる関数find()
関数find()を使うと、特定キーワードが文字列の何番目に登場したか知ることができます。
text="わたしはPythonを学習しています、僕もPythonを学習しています"
word="Python"
text.find(word)
特定文字が最後から何文字目に登場するか確認できる関数rfind()
先ほどの find()
とは逆で、最後から何文字目に登場するか確認できる関数 rfind() があります。
text="わたしはPythonを学習しています、僕もPythonを学習しています"
word="Python"
text.rfind(word)
特定文字が何回登場するか確認できる関数count()
文字列内に特定文字が何回出てくるかチェックできる関数に count() があります。
text="わたしはPythonを学習しています、僕もPythonを学習しています"
word="Python"
text.count(word)
\AIエンジニアに必要なスキルが身に付く/
まとめ
今回、文字列の編集方法や確認方法を一通りご紹介させていただきました。サンプルコードは29種類にのぼり、文字列の取り扱い方法がたくさんあることを確認できたと思います。 基本的なこととはいえ、一応は自分でコードを入力してPythonに慣れることがオススメ。 「ちょっと一人では厳しい」「分からない」という方、オンラインのマンツーマンレッスン CodeCamp はいかがでしょうか?
- この記事を書いた人
- オシママサラ