找回密码
 会员注册
查看: 19|回复: 0

Python中如何将字符串变成数字

[复制链接]

2

主题

0

回帖

7

积分

新手上路

积分
7
发表于 2024-9-6 09:47:46 | 显示全部楼层 |阅读模式
字符串和数字是Python中常见的数据类型,而且在撰写Python程序的时候,也经常会遇到需要将字符串转换为数字的情况,那么Python中如何将字符串变成数字?有多种方法可以使用,接下来一起来看看具体内容介绍。  1、使用int()函数  int()函数可以将字符串转换为整数类型。例如,将字符串"123"转换为整数类型的代码如下:  ```  str_num="123"  num=int(str_num)  print(num)  ```  运行结果为:  ```  123  ```  需要注意的是,如果字符串中包含非数字字符,则会抛出ValueError异常。例如,将字符串"123abc"转换为整数类型的代码如下:  ```  str_num="123abc"  num=int(str_num)  print(num)  ```  运行结果为:  ```  ValueError:invalidliteralforint()withbase10:'123abc'  ```  2、使用float()函数  float()函数可以将字符串转换为浮点数类型。例如,将字符串"3.14"转换为浮点数类型的代码如下:  ```  str_num="3.14"  num=float(str_num)  print(num)  ```  运行结果为:  ```  3.14  ```  需要注意的是,如果字符串中包含非数字字符,则会抛出ValueError异常。例如,将字符串"3.14abc"转换为浮点数类型的代码如下:  ```  str_num="3.14abc"  num=float(str_num)  print(num)  ```  运行结果为:  ```  ValueError:couldnotconvertstringtofloat:'3.14abc'  ```  3、使用eval()函数  eval()函数可以将字符串转换为Python表达式并求值。如果字符串表示一个数字,eval()函数会将其转换为数字类型。例如,字符串"123"转换为数字类型的代码如下:  ```  str_num="123"  num=eval(str_num)  print(num)  ```  运行结果为:  ```  123  ```  需要注意的是,如果字符串中包含非数字字符,则会抛出SyntaxError异常。例如,将字符串"123abc"转换为数字类型的代码如下:  ```  str_num="123abc"  num=eval(str_num)  print(num)  ```  运行结果为:  ```  SyntaxError:invalidsyntax  ```  4、使用isdigit()函数  isdigit()函数可以检查字符串中是否只包含数字字符。如果是,返回True;否则返回False。例如,判断字符串"123"是否是数字的代码如下:  ```  str_num="123"  ifstr_num.isdigit():  print("是数字")  else:  print("不是数字")  ```  运行结果为:  ```  是数字  ```  需要注意的是,如果字符串中包含非数字字符,则返回False。例如,判断字符串"123abc"是否是数字的代码如下:  ```  str_num="123abc"  ifstr_num.isdigit():  print("是数字")  else:  print("不是数字")  ```  运行结果为:  ```  不是数字  ```  5、使用正则表达式提取字符串中的数字  正则表达式可以用来匹配特定的字符串格式。可以使用正则表达式提取字符串中的数字。例如,从字符串"abc123def456"中提取数字的代码如下:  ```  importre  str_num="abc123def456"  pattern=re.compile(r'\d+')  nums=pattern.findall(str_num)  print(nums)  ```  运行结果为:  ```  ['123','456']  ```  需要注意的是,正则表达式中的"\d"表示数字字符,而"+"表示匹配至少一个数字字符。如果要匹配浮点数,则可以使用"\d+\.\d+"作为正则表达式。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 19:10 , Processed in 0.428437 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表