Python中字符转数字分两类:一是用ord()将单字符转Unicode码点,如ord('A')→65;二是用int()或float()将数字字符串转数值,如int("42")→42,需注意输入合法性。
Python中将字符转换为数字,主要看你想转成什么类型的“数字”:是单个字符对应的ASCII码(或Unicode码点),还是把表示数字的字
符串(比如 "123")转成整数或浮点数。下面分两种常见情况说明:
用内置函数 ord(),它返回字符的Unicode码点(对ASCII字符就是ASCII值):
ord('A') → 65
ord('0') → 48
ord('€') → 8364(Unicode)注意:ord() 只接受长度为1的字符串;传入空字符串或多个字符会报错。
如果字符串本身是数字形式(如 "42"、"3.14"、"-7"),用 int() 或 float():
int("42") → 42(整数)float("3.14") → 3.14(浮点数)int(" 100 ") → 100(自动忽略首尾空格)⚠️ 如果字符串不合法(如 "abc"、"12.34.56"),会触发 ValueError。需要时可加 try...except 处理。
因为 ord('0') == 48,所以常用这个偏移来快速转换数字字符:
ord('5') - ord('0') → 5
ord(c) - 48(等价,但推荐写 ord('0') 更清晰)这在手写解析数字字符串、或做底层字符处理时比较有用。
基本上就这些。关键分清:是“字符→编码”,还是“数字字符串→数值”。选对函数,基本不会出错。