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


上一篇:Python网络编程基础详解:从socket到HTTP请求

下一篇:Python编程模拟升国旗:算法、动画与创意实现