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

整数 0~9






