【Python入門】Pythonのord関数とは?使い方と活用方法を徹底解説(Python 3.11)

Python

はじめに

Pythonには、文字を扱うための便利な組み込み関数が数多く用意されています。その中でも、文字を数値(Unicodeコードポイント)に変換する ord() 関数は、文字列処理を行う際に役立ちます。

本記事では、ord() 関数の基本的な使い方から応用的な活用方法までを詳しく解説します。Python初心者の方でも理解しやすいように、具体的なコード例を交えて説明していきます。

ord関数とは?

ord() 関数は、指定した文字のUnicodeコードポイントを取得するためのPythonの組み込み関数です。例えば、英字や数字、記号、日本語の文字など、あらゆる文字のUnicode値を取得することができます。

この関数は、以下のような場面で利用されます。

  • 文字と数値を相互に変換する際
  • アルファベットの並び順を取得する際
  • 暗号化やデータ処理において文字コードを利用する際

ord関数の基本構文

ord() 関数の基本的な構文は以下の通りです。

ord(character)

引数

  • character:1文字の文字列(str型)
    • 1文字のみを渡す必要があり、複数文字を渡すと TypeError が発生します。

戻り値

  • 指定した文字のUnicodeコードポイント(int型)

ord関数の使用例

実際に ord() 関数を使用した例を見てみましょう。

例1: 英字のUnicodeコードポイントを取得

print(ord('A'))  # 65
print(ord('a'))  # 97

例2: 数字や記号のUnicodeコードポイントを取得

print(ord('0'))  # 48
print(ord('#'))  # 35

例3: 日本語のUnicodeコードポイントを取得

print(ord('あ'))  # 12354
print(ord('漢'))  # 28450

このように、ord() 関数を使うことで、さまざまな文字のUnicodeコードポイントを取得できます。

ord関数の応用例

例4: 文字の並び順を比較

ord() 関数を活用すると、文字の順序を比較することができます。

def compare_chars(char1, char2):
    if ord(char1) < ord(char2):
        return f"{char1} は {char2} より前に位置します"
    elif ord(char1) > ord(char2):
        return f"{char1} は {char2} より後に位置します"
    else:
        return f"{char1} と {char2} は同じ文字です"

print(compare_chars('A', 'B'))  # A は B より前に位置します
print(compare_chars('あ', 'い'))  # あ は い より前に位置します

例5: 文字列をUnicodeコードポイントに変換

文字列の各文字を ord() を用いてUnicodeコードポイントに変換することができます。

def string_to_unicode(text):
    return [ord(char) for char in text]

print(string_to_unicode("Hello"))  # [72, 101, 108, 108, 111]
print(string_to_unicode("Python"))  # [80, 121, 116, 104, 111, 110]

例6: 暗号化の基礎(簡単なシーザー暗号)

ord() 関数を使って、シンプルな暗号化を行うことも可能です。

def caesar_cipher(text, shift):
    return ''.join(chr(ord(char) + shift) for char in text)

print(caesar_cipher("hello", 3))  # khoor
print(caesar_cipher("Python", 5))  # U~ymts

このように、ord() 関数はさまざまな場面で活用できます。

まとめ

本記事では、Pythonの ord() 関数について詳しく解説しました。

  • ord() 関数は、1文字のUnicodeコードポイントを取得する関数
  • 英字、数字、日本語などさまざまな文字のコードポイントを取得可能
  • 文字の並び順比較や暗号化など、幅広い用途で活用できる

ord() 関数を活用することで、文字列処理の幅が広がります。ぜひ実際に試してみて、理解を深めてください!