首页 >> 严选问答 >

问python 字符转数字 转换方法深度精讲

2026-11-11 08:02:40

答

python 字符转数字,就是把字符串形式的文本内容,转换成整数或者浮点数这类数值类型,最常用的内置函数是 int 和 float,在读取文件 用户输入 split 拆分文本之后非常常用,因为读取得到的数据默认都是字符串,想要做加减乘除运算,就必须完成字符转数字操作。很多新手做计算的时候直接报错,本质原因就是没有做字符转数字,字符串和数字不能直接参与算术运算,理解 int 和 float 的适用范围 报错场景 进制转换 异常捕获之后,就可以稳定完成转换,避免 ValueError 这类常见报错。

int 函数 转整数

基础语法 int (待转换字符串,base=10)

第一个参数是需要转换的字符或者字符串,默认 base 等于 10,代表十进制转换。

基础代码示例

s = "123"

num = int (s)

print (num + 10)

运行之后得到数值 133,可以正常参与计算。

进制转换用法,比如二进制字符串转十进制整数

s = "1010"

num = int (s, base=2)

print (num)

结果是 10,还支持 8 进制 16 进制转换,base 参数可以填写 2 8 16。

注意点,int 只能转换纯整数格式的字符,如果字符串里面带小数点,比如 "3.14",直接 int 转换会报错。

float 函数 转浮点数

基础语法 float (待转换字符串)

适合带小数点的字符转数字,转换之后得到 float 浮点类型,可以参与小数运算。

基础代码示例

s = "3.14"

num = float (s)

print (num 2)

运行结果是 6.28

float 也可以转换纯整数字符串,比如 "100" 转完之后变成 100.0,变成带小数点的浮点数。

还支持识别科学计数法字符串,比如 "1.2e3",float 转换之后是 1200.0。

转换失败常见情况

字符串里面包含中文 字母 多余空格之外的特殊符号,比如 "12a3",转换直接抛出 ValueError。

字符串是空字符串,int 和 float 都无法转换。

带千分位逗号的字符串,比如 "1,000",直接 int 转换会报错,需要提前替换逗号,写法是 s.replace (",","") 之后再转换。

负数字符串 "-56" 可以正常转换,正负号是允许识别的。

带异常捕获的安全转换写法

实际项目里面原始数据经常是脏数据,直接转换容易让程序崩溃,所以一般搭配 try except,转换失败的时候给默认值,这也是 python 字符转数字最推荐的实战写法。

代码示例

s = input ("输入内容")

try:

num = int (s)

print ("转换成功",num)

except ValueError:

print ("字符转数字失败,内容不是合法整数")

批量转换场景,比如 split 拆分之后得到字符串列表,使用列表推导式批量字符转数字

str_list = ["10","20","30"]

num_list = [int (x) for x in str_list]

int 和 float 转换对比表格

对比项int 函数float 函数
转换目标整数类型浮点数类型
是否支持小数点不支持支持
是否支持进制参数支持 base不支持进制参数
科学计数法不支持支持
典型报错带小数点字符转换报错非法字符转换报错

补充拓展

如果是单个字符,比如字符 "5",本质也是字符串,同样使用 int 或者 float 完成 python 字符转数字。

转换完成之后,可以使用 type 函数验证转换后的类型,确认是不是已经变成数值类型。

如果业务需要保留精度,不要使用 float,因为浮点数存在精度误差,可以使用 decimal 模块的 Decimal 做高精度字符转数字。

【常见问题】

问题 1 python 字符转数字的时候,"3.14" 能不能直接用 int 转换

回答 1 python 字符转数字的时候,"3.14" 不能直接使用 int 转换,int 只识别整数格式,带小数点的字符串需要使用 float 函数完成 python 字符转数字。

问题 2 python 字符转数字,字符串里面有逗号千分位怎么办

回答 1 python 字符转数字,如果是 "1,000" 这种带千分位逗号的文本,不能直接转换,需要先用 replace 把逗号删除,再调用 int 或者 float 完成 python 字符转数字。

问题 3 python 字符转数字,转换失败怎么防止程序崩溃

回答 1 python 字符转数字的时候,原始文本可能是脏数据,推荐搭配 try except 捕获 ValueError 异常,转换失败设置默认值,这样可以保证程序不会因为 python 字符转数字失败直接终止。

问题 4 python 字符转数字,int 函数 base 参数是做什么的

回答 1 python 字符转数字,int 函数的 base 参数用来指定原字符串的进制,比如 base 等于 2 代表二进制字符转数字,默认 base 等于 10 就是普通十进制转换。

【免责申明】

本文内容仅作为 python 字符转数字的教学参考,代码案例仅适合本地学习练习,不同 python 版本转换规则保持一致,高精度业务场景需要额外考虑浮点数精度问题,自行修改运行代码产生的报错需要自行排查处理。

 

相关阅读

最新文章