python怎么把字符串转换成数字

如题所述

第1个回答  2017-03-16
用关键字 int:
如: a = '1'
a = int(a)
第2个回答  2023-10-19
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: invalid literal for int() with base 10: '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: could not convert string to float: '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: invalid syntax
```
4、使用isdigit()函数
isdigit()函数可以检查字符串中是否只包含数字字符。如果是,返回True;否则返回False。例如,判断字符串"123"是否是数字的代码如下:
```
str_num = "123"
if str_num.isdigit():
print("是数字")
else:
print("不是数字")
```
运行结果为:
```
是数字
```
需要注意的是,如果字符串中包含非数字字符,则返回False。例如,判断字符串"123abc"是否是数字的代码如下:
```
str_num = "123abc"
if str_num.isdigit():
print("是数字")
else:
print("不是数字")
```
运行结果为:
```
不是数字
```
5、使用正则表达式提取字符串中的数字
正则表达式可以用来匹配特定的字符串格式。可以使用正则表达式提取字符串中的数字。例如,从字符串"abc123def456"中提取数字的代码如下:
```
import re
str_num = "abc123def456"
pattern = re.compile(r'\d+')
nums = pattern.findall(str_num)
print(nums)
```
运行结果为:
```
['123', '456']
```
需要注意的是,正则表达式中的"\d"表示数字字符,而"+"表示匹配至少一个数字字符。如果要匹配浮点数,则可以使用"\d+\.\d+"作为正则表达式。
相似回答