python如何将字符串转换为数字:两类转换方法

python如何将字符串转换为数字,主要依靠int()转整数、float()转浮点数两个内置函数,int()仅能处理纯整数格式字符串,float()可处理整数、小数格式字符串,遇到带逗号、百分号、单位的字符串,需要先清洗文本再转换;你如果是读取表单输入、读取文本文件数字字符串,优先使用float(),如果是读取身份证、序号这类无小数的数字文本,优先用int(),该方法的适用边界是原始字符串内不能包含字母、中文、空格等非数字字符,仅允许数字与单个小数点,出现其他字符会直接抛出异常。

字符串转整数

int()函数接收字符串参数,返回整数类型,调用格式为int("数字字符串"),示例代码num=int("123"),变量num的类型为int,数值123。int()支持指定进制转换,第二个参数填写进制基数,int("1010",2)可以把二进制字符串转为十进制整数,适合处理二进制、十六进制文本编码场景。

int()不能识别带小数点的字符串,执行int("12.3")会直接报错,这是该函数的硬性限制。

字符串转浮点数

float()函数接收字符串参数,返回浮点数,调用格式num=float("45.6"),支持整数形态字符串,float("78")同样能正常得到浮点数78.0。这个函数只识别单个小数点,字符串内出现多个小数点会触发转换失败。

转换后的数据会保留小数结构,在整数场景下会多出.0后缀,你后续可以根据业务需求再转成int。

多转换方法对比

方法支持字符串类型异常触发场景返回类型
int()纯数字整数字符串带小数点、字母、中文int整数
float()整数、小数数字字符串多小数点、字母、中文float浮点数
eval(),不推荐数字字符串存在代码注入安全风险对应数字类型

eval()虽然可以完成字符串转数字,但当字符串来源是外部用户输入内容时,外部输入可以植入恶意代码,会带来安全隐患,生产环境尽量避开eval。

异常捕获处理

外部读取的字符串经常存在格式异常,你需要用tryexcept捕获转换异常,避免程序直接中断。示例代码:try:res=int(input_str)exceptValueError:print("转换失败")。ValueError是转换失败时抛出的异常类型,代表字符串无法解析为目标数字。

清洗带符号的字符串,要先去除无关符号。

遇到带千分位逗号的字符串,例如"1,200",不能直接转换,你需要先用replace(",","")把逗号删除,再执行转换,完整示例:s="1,200";num=int(s.replace(",",""))。

带百分号的字符串如"95%",需要先去掉百分号,转换浮点数后再除以100,得到对应数值。

转换完成后,用type()函数校验变量类型,确认转换结果。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于python如何将字符串转换为数字的文章欢迎访问:百科