Python ord()和chr()函数详解及编程实例303
Python 提供了两个内置函数 `ord()` 和 `chr()`,它们分别用于获取字符的 Unicode 码点和根据 Unicode 码点获取字符。这两个函数在字符串处理、编码转换以及一些特殊字符操作中扮演着重要的角色。本文将深入探讨这两个函数的功能、用法以及结合具体的编程实例进行讲解,帮助读者更好地理解和掌握这两个函数。
1. `ord()` 函数
`ord()` 函数接受一个字符(长度为 1 的字符串)作为参数,并返回该字符对应的 Unicode 码点。Unicode 码点是一个整数,表示字符在 Unicode 字符集中的位置。例如,字符 'A' 的 Unicode 码点是 65,字符 'a' 的 Unicode 码点是 97,中文汉字 '中' 的 Unicode 码点则是一个更大的整数。
以下是 `ord()` 函数的一些使用示例:```python
print(ord('A')) # 输出: 65
print(ord('a')) # 输出: 97
print(ord('中')) # 输出: 20013
print(ord('')) # 输出: 10 (换行符)
print(ord(' ')) # 输出: 32 (空格)
```
需要注意的是,`ord()` 函数只能接受单个字符作为参数。如果传入长度大于 1 的字符串,则会引发 `TypeError` 异常。```python
# 下面的代码会引发 TypeError 异常
print(ord("AB"))
```
2. `chr()` 函数
`chr()` 函数是 `ord()` 函数的逆操作,它接受一个整数作为参数(Unicode 码点),并返回对应 Unicode 码点的字符。例如,`chr(65)` 返回字符 'A',`chr(97)` 返回字符 'a'。
以下是 `chr()` 函数的一些使用示例:```python
print(chr(65)) # 输出: A
print(chr(97)) # 输出: a
print(chr(20013)) # 输出: 中
print(chr(10)) # 输出:
print(chr(32)) # 输出: (空格)
```
如果传入的整数不在 Unicode 码点范围内,则会引发 `ValueError` 异常。```python
# 下面的代码会引发 ValueError 异常
print(chr(1114112)) # 超出Unicode范围
```
3. `ord()` 和 `chr()` 的结合应用
`ord()` 和 `chr()` 函数常常结合使用,可以实现一些有趣的字符操作。例如,可以将字符串中的每个字符转换成其 Unicode 码点,进行一些计算或转换,然后再将结果转换回字符。
以下是一个将小写字母转换成大写字母的例子:```python
lowercase = 'abcdefghijklmnopqrstuvwxyz'
uppercase = ''
for char in lowercase:
code = ord(char)
uppercase += chr(code - 32)
print(uppercase) # 输出: ABCDEFGHIJKLMNOPQRSTUVWXYZ
```
再比如,我们可以利用这两个函数来进行简单的字符加密:```python
def caesar_cipher(text, shift):
result = ''
for char in text:
if ():
start = ord('a') if () else ord('A')
shifted_char = chr((ord(char) - start + shift) % 26 + start)
elif ():
shifted_char = str((int(char) + shift) % 10)
else:
shifted_char = char
result += shifted_char
return result
encrypted_text = caesar_cipher("Hello, World! 123", 3)
print(encrypted_text) # 输出: Khoor, Zruog! 456
decrypted_text = caesar_cipher(encrypted_text, -3)
print(decrypted_text) # 输出: Hello, World! 123
```
这个例子实现了一个简单的凯撒密码,通过将每个字符的Unicode码点进行偏移来实现加密和解密。 当然,这只是一个简单的示例,实际应用中需要考虑更复杂的加密算法。
4. 处理非ASCII字符
`ord()` 和 `chr()` 函数对于处理非ASCII字符(例如中文、日文等)非常有用。它们能够正确地处理这些字符的Unicode码点,这在国际化编程中至关重要。```python
chinese_char = "你好"
for char in chinese_char:
print(f"字符: {char}, Unicode码点: {ord(char)}")
```
总而言之,`ord()` 和 `chr()` 函数是 Python 中两个非常实用且强大的内置函数,它们在字符串处理、编码转换以及其他许多编程任务中都发挥着重要作用。熟练掌握这两个函数,可以帮助你编写更简洁、高效且功能强大的 Python 代码。
2025-08-22

Perl高效提取Excel数据:方法、技巧及实战
https://jb123.cn/perl/66715.html

Perl数组和哈希值排序详解:高效处理数据
https://jb123.cn/perl/66714.html

游戏脚本语言的特点及选择指南
https://jb123.cn/jiaobenyuyan/66713.html

网页协议脚本语言开发价格深度解析:影响因素及报价策略
https://jb123.cn/jiaobenyuyan/66712.html

上海Python儿童编程机构选择指南:培养孩子编程思维与创造力
https://jb123.cn/python/66711.html
热门文章

Python 编程解密:从谜团到清晰
https://jb123.cn/python/24279.html

Python编程深圳:初学者入门指南
https://jb123.cn/python/24225.html

Python 编程终端:让开发者畅所欲为的指令中心
https://jb123.cn/python/22225.html

Python 编程专业指南:踏上编程之路的全面指南
https://jb123.cn/python/20671.html

Python 面向对象编程学习宝典,PDF 免费下载
https://jb123.cn/python/3929.html