Python的内置函数chr()用于将Integer转换为Character,而函数ord()用于执行相反的操作,即将Character转换为Integer。
让我们快速浏览一下这两个函数并了解如何使用它们。
chr() 函数
句法
它接受一个整数i
并将其转换为一个字符c
,因此它返回一个字符串。
格式:
c = chr (i) |
这是一个演示相同内容的示例:
# Convert integer 65 to ASCII Character ('A') y = chr ( 65 ) print ( type (y), y) # Print A-Z for i in range ( 65 , 65 + 25 ): print ( chr (i), end = " , " ) |
输出
< class 'str' > A A , B , C , D , E , F , G , H , I , J , K , L , M , N , O , P , Q , R , S , T , U , V , W , X , Y , Z |
参数的有效范围是从 0 到 1,114,111(十六进制为 0x10FFFF)。 ValueError
如果整数i超出该范围,则会引发该错误。
让我们用一些例子来验证一下
print ( chr ( - 1 )) |
这将引发一个ValueError
.
ValueError: chr () arg not in range ( 0x110000 ) |
start = 0 end = 1114111 try : for i in range (start, end + 2 ): a = chr (i) except ValueError: print ( "ValueError for i =" , i) |
输出
ValueError for i = 1114112 |
ord() 函数
ord ()函数采用单个 Unicode 字符的字符串参数并返回其整数 Unicode 代码点值。它的作用与chr()
.
句法
这需要一个 Unicode 字符(长度为 1 的字符串)并返回一个整数,因此格式为:
i = ord (c) |
为了验证它是否执行与 相反的操作chr()
,让我们使用一些示例来测试该函数。
# Convert ASCII Unicode Character 'A' to 65 y = ord ( 'A' ) print ( type (y), y) alphabet_list = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # Print 65-90 for i in alphabet_list: print ( ord (i), end = " , " ) |
输出
< class 'int' > 65 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 76 , 77 , 78 , 79 , 80 , 81 , 82 , 83 , 84 , 85 , 86 , 87 , 88 , 89 , 90 , |
TypeError
如果输入字符串的长度不等于 1,则会引发 a 。
y = ord ( 'Hi' ) |
输出
TypeError: ord () expected a character, but string of length 2 found |
传递十六进制数据
我们还可以将以其他常见基数表示的整数传递给chr()和ord(),例如十六进制格式(基数 16)。
在 Python 中,我们可以通过在整数前面加上 来使用十六进制0x
,前提是它在整数值的 32/64 位范围内。
>>> print ( hex ( 18 )) '0x12' >>> print ( chr ( 0x12 )) '\x12' >>> print ( ord ( '\x12' )) 18 >>> print ( int ( '\x12' )) 18 |
我们将十六进制格式的整数18chr()
传递给,它返回一个十六进制的0x12
。我们将其传递给chr()
并用于ord()
取回我们的整数。
请注意,我们也可以使用 获取整数int()
,因为单个字符串也是一个字符串,它可以是上述函数的有效参数。
结论
在本文中,我们学习了如何使用整数chr()
并将ord()
其转换为字符,反之亦然。