Pythonで文字列操作!ord関数の使い方と応用例を10選で紹介

Pythonのord関数の使い方と応用例Python
この記事は約9分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

私たちの日常生活でコンピューターとインタラクトする際、その裏側で動いているのがプログラミング言語です。

特にPythonはその直感的で読みやすいコードから、初心者から熟練者まで幅広く使用されています。

この記事では、Pythonの基本関数であるord関数を取り上げ、その使い方から応用例まで詳しく紹介します。

●Pythonとord関数の基本

○Pythonとは

Pythonは1991年に登場したプログラミング言語で、そのシンプルさと強力さからデータ分析やウェブ開発、人工知能の開発など、幅広い分野で活用されています。

Pythonの特徴はそのコードが直感的で読みやすいことで、これにより初心者でも容易にコーディングを始めることができます。

○ord関数とは

ord関数はPythonの組み込み関数の一つで、文字列の文字をUnicodeの整数に変換するために使われます。

ordは’order’の略で、文字の順序あるいは位置を意味します。

この関数は一つの引数、すなわち一つの文字列を受け取り、その文字のUnicode表現を整数として返します。

●ord関数の使い方

○サンプルコード1:基本的な使い方

このコードでは、ord関数の基本的な使い方を表しています。

この例では、文字’A’と文字’あ’のUnicode表現を取得しています。

print(ord('A'))  # 65
print(ord('あ'))  # 12354

上記のコードを実行すると、’A’のUnicode値である65と、’あ’のUnicode値である12354が出力されます。

○サンプルコード2:文字列の一部を処理

このコードでは、文字列の一部の文字に対してord関数を適用する例を紹介しています。

この例では、文字列”Python”の最初の文字のUnicode表現を取得しています。

str1 = "Python"
print(ord(str1[0]))  # 80

上記のコードを実行すると、’P’のUnicode値である80が出力されます。

●ord関数の応用例

○サンプルコード3:リスト内包表記と組み合わせた使い方

このコードでは、リスト内包表記とord関数を組み合わせて、文字列内の全ての文字のUnicode表現をリストとして取得する方法を紹介します。

str2 = "Hello"
unicode_values = [ord(c) for c in str2]
print(unicode_values)  # [72, 101, 108, 108, 111]

上記のコードを実行すると、”Hello”という文字列の各文字のUnicode値がリスト形式で出力されます。

○サンプルコード4:条件分岐と組み合わせた使い方

このコードでは、条件分岐とord関数を組み合わせて、大文字と小文字を区別する方法を紹介します。

この例では、入力された文字が大文字か小文字かを判定しています。

char = "A"
if ord(char) >= 65 and ord(char) <= 90:
    print(f"{char}は大文字です。")  # Aは大文字です。
else:
    print(f"{char}は小文字です。")

上記のコードを実行すると、’A’が大文字であるという結果が出力されます。

○サンプルコード5:ループと組み合わせた使い方

このコードでは、ループとord関数を組み合わせて、文字列内の各文字のUnicode値を順番に出力する方法を紹介します。

for c in "Python":
    print(ord(c))

このコードを実行すると、文字列”Python”の各文字のUnicode値が順に出力されます。

○サンプルコード6:関数定義と組み合わせた使い方

このコードでは、関数定義とord関数を組み合わせて、文字列をUnicodeの数値に変換する関数を作成する方法を紹介します。

def string_to_unicode(string):
    return [ord(c) for c in string]

print(string_to_unicode("Hello"))  # [72, 101, 108, 108, 111]

この関数を使うと、任意の文字列を入力として受け取り、その文字列の各文字をUnicodeに変換した結果をリスト形式で返します。

このように、ord関数は関数の中で使用することも可能です。

○サンプルコード7:他の文字列操作と組み合わせた使い方

このコードでは、他の文字列操作とord関数を組み合わせて、文字列を逆順にした上で、各文字のUnicode表現を取得する方法を紹介します。

reverse_str = "Hello"[::-1]
unicode_values = [ord(c) for c in reverse_str]
print(unicode_values)  # [111, 108, 108, 101, 72]

文字列”Hello”を逆順にした結果の各文字のUnicode値が出力されます。

○サンプルコード8:例外処理と組み合わせた使い方

このコードでは、例外処理とord関数を組み合わせて、入力が文字列でない場合にエラーメッセージを出力する方法を紹介します。

try:
    print(ord(123))  # TypeError
except TypeError:
    print("ord関数は文字列のみを引数として受け取ります。")

このコードを実行すると、”ord関数は文字列のみを引数として受け取ります。”というエラーメッセージが出力されます。

ord関数は文字列を引数に取るため、例外処理を使って適切なエラーメッセージを出力することができます。

○サンプルコード9:ファイル操作と組み合わせた使い方

このコードでは、ファイル操作とord関数を組み合わせて、ファイルから読み込んだ文字列をUnicodeに変換する方法を紹介します。

ファイルから読み込んだテキストを処理する際には、このような方法が有用です。

with open('example.txt', 'r') as file:
    text = file.read()
    unicode_values = [ord(c) for c in text]
    print(unicode_values)

この例では、’example.txt’という名前のファイルを読み込み、その中身をUnicodeのリストに変換しています。

例えば、ファイルの中身が”Hello”であれば、結果は[72, 101, 108, 108, 111]となります。

○サンプルコード10:正規表現と組み合わせた使い方

このコードでは、正規表現とord関数を組み合わせて、特定のパターンに一致する文字だけをUnicodeに変換する方法を紹介します。

import re

text = "Hello, 123!"
pattern = re.compile('[A-Za-z]')
matches = pattern.findall(text)

unicode_values = [ord(c) for c in matches]
print(unicode_values)  # [72, 101, 108, 108, 111]

この例では、文字列”Hello, 123!”からアルファベットの文字だけを抽出し、それらのUnicode値を出力します。

このように、正規表現を用いて特定のパターンに一致する文字列を抽出し、その結果をord関数で処理することができます。

●ord関数の詳細な注意点

ord関数は、Pythonで文字列を扱う際の基本的な関数の1つです。

しかしながら、使用する際にはいくつかの注意点があります。

  1. ord関数は引数として1文字の文字列を受け取ります。
    したがって、複数の文字を含む文字列や文字列でない値を引数として渡すとエラーが発生します。
  2. ord関数の戻り値は、引数として与えられた文字のUnicode値(10進数)です。
    したがって、その結果を文字列に戻すにはchr関数を使用する必要があります。
  3. Unicodeは、文字を一意に表現する国際標準のコードで、世界中のほとんどすべての文字をカバーしています。
    しかし、全ての数値が有効なUnicodeとは限らず、一部の数値は無効なUnicodeとなるので注意が必要です。

以上の点を理解しておけば、ord関数をより効果的に活用することが可能になります。

●ord関数のカスタマイズ方法

ord関数は単体でも多くの用途がありますが、他のPythonの関数や機能と組み合わせることで、さらに多くの操作が可能になります。

ord関数をカスタマイズして利用する方法をいくつか紹介します。

  1. 文字列内の特定の文字を検索する

Pythonの組み込み関数であるfilterを使用して、文字列内の特定のUnicode値を持つ文字を検索することができます。

text = "こんにちは、Python!"
target_unicode = 12371  # こ の Unicode値
filtered_chars = filter(lambda c: ord(c) == target_unicode, text)
print(list(filtered_chars))  # ['こ', 'こ']

この例では、文字列からUnicode値が12371(’こ’)に一致する文字を検索しています。

filter関数の第一引数には、各文字に対して実行する条件を指定する関数を渡します。

  1. ユニコード値を元に新しい文字列を作成する

ord関数とchr関数を組み合わせて、既存の文字列から新しい文字列を作成することができます。

これは、文字列内の特定の文字を別の文字に置き換える際などに有用です。

text = "こんにちは、Python!"
new_text = ''.join(chr(ord(c) + 1) for c in text)
print(new_text)  # こんいちは、Qzuipvo!

この例では、文字列の各文字のUnicode値を1増やし、その結果を元に新しい文字列を作成しています。

このような文字列操作は、暗号化やデータ変換など、様々な場面で役立ちます。

  1. 文字列のソート

ord関数を利用して、文字列をソートすることも可能です。

下記の例では、文字列内の文字をUnicode値の昇順に並び替えています。

text = "Python, こんにちは!"
sorted_text = ''.join(sorted(text, key=ord))
print(sorted_text)  #  ,Pnothあこんにちは!y

この例では、sorted関数のkey引数にord関数を指定することで、文字列をUnicode値の昇順にソートしています。

以上のように、ord関数はPythonの他の機能と組み合わせることで、様々な文字列操作を実行することが可能です。

まとめ

本記事では、Pythonの基本関数であるord関数の使い方と、それを活用した応用例をいくつか紹介しました。

文字列の各文字をUnicodeに変換するord関数は、ファイル操作、正規表現の検索、カスタマイズ方法といった多くの場面で利用可能です。

また、注意点を把握することで、さらに安全に、そして効果的にこの関数を活用することができます。

ord関数はPythonで文字列操作を行う上での基本的なツールの1つであり、その理解はプログラミング力向上に大いに寄与します。

これらの情報がPythonを学んでいく上での助けになれば幸いです。