python 中常见字符函数 chr unichr ord函数介绍

本文介绍了Python中chr(), unichr() 和 ord() 函数的基本用法及其区别。chr()函数接受一个整数并返回对应的ASCII字符;unichr()函数则返回Unicode字符,其参数范围取决于Python的编译配置;ord()函数用于获取单个字符的ASCII或Unicode值。文章通过示例展示了如何正确使用这些函数。

chr()函数用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符。unichr()跟它一样,只不过返回的是Unicode字符,这个从Python 2.0才加入的unichr()的参数范围依赖于你的Python是如何被编译的。如果是配置为USC2的Unicode,那么它的允许范围就是range(65536)或0x0000-0xFFFF;如果配置为UCS4,那么这个值应该是range(1114112)或0x000000-0x110000。如果提供的参数不在允许的范围内,则会报一个ValueError的异常。

ord()函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常。

示例:

>>> chr(65)
'A'
>>> ord('a')
97
>>> unichr(12345)
u'\u3039'
>>> chr(12345)
Traceback (most recent call last):
   File "<stdin>", line 1, in ?    
     chr(12345)
ValueError: chr() arg not in range(256)
>>> ord(u'\ufffff')
Traceback (most recent call last):
   File "<stdin>", line 1, in ?
     ord(u'\ufffff')
TypeError: ord() expected a character, but string of length 2 found
>>> ord(u'\u2345')
9029


<think> 我们被要求使用中文回答,并且需要参考提供的引用内容来回答用户关于chrord函数Python中的使用方法的问题。 根据引用[1]和[2]: - `chr()`函数:根据传入的整数(代表Unicode码位)返回对应的字符。例如,`chr(65)`返回字符'A'。这个整数可以超过ASCII范围(0~127),因为Unicode的范围更大。 - `ord()`函数:是`chr()`的逆操作,它接受一个字符(长度为1的字符串)作为参数,返回该字符对应的Unicode码位(整数)。例如,`ord('A')`返回65。如果传入的字符串长度不为1,或者字符超出了Python定义的Unicode范围,会引发异常。 此外,引用[3]主要介绍Python语言本身,与问题关系不大。 因此,我们将围绕这两个函数的使用方法进行说明,并给出一些示例。 注意:根据系统指令,行内数学表达式使用$...$,但由于这个问题不涉及数学表达式,我们主要用代码示例。 我们还需要在回答末尾生成相关问题。 回答结构: 1. 介绍两个函数的基本功能。 2. 分别详细说明chrord函数的使用方法,包括参数和返回值,并给出示例。 3. 注意事项(如参数范围、异常等)。 4. 总结它们之间的关系。 5. 生成相关问题。 由于用户要求“尽可能的参考用户上一次的问题和你的回答”,但这是第一次关于这个问题的回答,所以我们将基于引用内容进行回答。 </think> ### Python中`chr()`和`ord()`函数的使用方法 `chr()`和`ord()`是Python中用于字符与Unicode编码相互转换的内置函数,它们互为逆操作(即`chr(ord(c)) == c`)。以下是详细说明: #### 1. `ord()`函数 - **功能**:将单个字符转换为对应的Unicode码位(整数) - **语法**:`ord(character)` - **参数**:长度为1的字符串(单个字符) - **返回值**:整数(Unicode码位) - **示例**: ```python print(ord('A')) # 输出: 65 (ASCII字符) print(ord('中')) # 输出: 20013 (中文字符) print(ord('🌍')) # 输出: 127757 (表情符号) ``` - **注意事项**: - 参数必须是长度为1的字符串,否则引发`TypeError` - 支持所有Unicode字符,包括中文、emoji等[^1][^2] #### 2. `chr()`函数 - **功能**:将Unicode码位(整数)转换为对应的字符 - **语法**:`chr(integer)` - **参数**:整数(有效Unicode码位) - **返回值**:长度为1的字符串 - **示例**: ```python print(chr(65)) # 输出: 'A' print(chr(20013)) # 输出: '中' print(chr(127757)) # 输出: '🌍' ``` - **注意事项**: - 参数需在0~1,114,111范围内(当前Unicode范围) - 超出范围会引发`ValueError`[^1][^2] #### 3. 典型应用场景 ```python # 字符串加密(凯撒密码偏移示例) text = "Python" encrypted = ''.join(chr(ord(c) + 3) for c in text) # 输出: 'Sbwkrq' # 验证字符类型 def is_digit(char): return 48 <= ord(char) <= 57 # '0'~'9'的Unicode范围 # 特殊字符生成 print(chr(10004)) # 输出: ✓ (勾号符号) ``` #### 4. 关键区别 | 函数 | 输入 | 输出 | 逆函数 | |------|---------------|---------------|------------| | `ord`| 字符(如'A') | 整数(65) | `chr()` | | `chr`| 整数(如65) | 字符('A') | `ord()` | > 注意:Python 2中有`unichr()`处理Unicode字符,但在Python 3中统一由`chr()`处理[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值