Python ord() 関数
ord()文字の Unicode コードポイントを取得するための Python の組み込み関数です。
ord()1文字(長さ1の文字列)を受け取り、対応する Unicode コードポイント(整数)を返します。これはchr()の逆関数です。
単語の意味: ordであるordinal(序数)の略です。
基本構文とパラメータ
構文形式
ord(c)
パラメータの説明
- パラメータ c:
- 型: 文字(長さ1の文字列)
- 説明: Unicode コードポイントを取得する文字。
関数の説明
- 戻り値: 文字の Unicode コードポイントを表す整数を返します。
例
例1: 基本的な使い方
例
# 英字
print(ord('A')) # 出力: 65
print(ord('Z')) # 出力: 90
print(ord('a')) # 出力: 97
print(ord('z')) # 出力: 122
# 数字
print(ord('0')) # 出力: 48
print(ord('9')) # 出力: 57
# 一般的な記号
print(ord('!')) # 出力: 33
print(ord('@')) # 出力: 64
# 中国語
print(ord('中')) # 出力: 20013
print(ord('文')) # 出力: 25991
print(ord('你')) # 出力: 20320
# スペース
print(ord(' ')) # 出力: 32
print(ord('A')) # 出力: 65
print(ord('Z')) # 出力: 90
print(ord('a')) # 出力: 97
print(ord('z')) # 出力: 122
# 数字
print(ord('0')) # 出力: 48
print(ord('9')) # 出力: 57
# 一般的な記号
print(ord('!')) # 出力: 33
print(ord('@')) # 出力: 64
# 中国語
print(ord('中')) # 出力: 20013
print(ord('文')) # 出力: 25991
print(ord('你')) # 出力: 20320
# スペース
print(ord(' ')) # 出力: 32
実行結果の予想:
65 90 97 122 48 57 33 64 20013 25991 20320 32
コードの解説:
- 大文字 A-Z の Unicode コードポイントは 65-90 です。
- 小文字 a-z の Unicode コードポイントは 97-122 です。
- 中国語の漢字の Unicode コードポイントは通常 19968(0x4E00)より大きいです。
例2: chr() との併用
例
# ord() は chr() の逆関数です
print(chr(ord('A'))) # 出力: A
print(ord(chr(65))) # 出力: 65
# 文字オフセット計算
char = 'A'
offset = 3
new_char = chr(ord(char) + offset)
print(new_char) # 出力: D
# シーザー暗号の例
def caesar_encode(text, shift):
result = ""
for c in text:
if c.isalpha():
base = ord('A') if c.isupper() else ord('a')
result += chr((ord(c) - base + shift) % 26 + base)
else:
result += c
return result
print(caesar_encode("ABC", 3)) # 出力: DEF
print(caesar_encode("XYZ", 3)) # 出力: ABC
print(chr(ord('A'))) # 出力: A
print(ord(chr(65))) # 出力: 65
# 文字オフセット計算
char = 'A'
offset = 3
new_char = chr(ord(char) + offset)
print(new_char) # 出力: D
# シーザー暗号の例
def caesar_encode(text, shift):
result = ""
for c in text:
if c.isalpha():
base = ord('A') if c.isupper() else ord('a')
result += chr((ord(c) - base + shift) % 26 + base)
else:
result += c
return result
print(caesar_encode("ABC", 3)) # 出力: DEF
print(caesar_encode("XYZ", 3)) # 出力: ABC
実行結果の予想:
A 65 D DEF ABC
ord()とchr()組み合わせは文字エンコード変換や暗号などの場面に利用できます。
その他の拡張
Python3 組み込み関数