字符串和數(shù)字是Python中常見的數(shù)據(jù)類型,而且在撰寫Python程序的時(shí)候,也經(jīng)常會(huì)遇到需要將字符串轉(zhuǎn)換為數(shù)字的情況,那么Python中如何將字符串變成數(shù)字?有多種方法可以使用,接下來(lái)一起來(lái)看看具體內(nèi)容介紹。
1、使用int()函數(shù)
int()函數(shù)可以將字符串轉(zhuǎn)換為整數(shù)類型。例如,將字符串"123"轉(zhuǎn)換為整數(shù)類型的代碼如下:
```文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-714903.html
str_num = "123"
num = int(str_num)
print(num)
```
運(yùn)行結(jié)果為:
```
123
```
需要注意的是,如果字符串中包含非數(shù)字字符,則會(huì)拋出ValueError異常。例如,將字符串"123abc"轉(zhuǎn)換為整數(shù)類型的代碼如下:
```
str_num = "123abc"
num = int(str_num)
print(num)
```
運(yùn)行結(jié)果為:
```
ValueError: invalid literal for int() with base 10: '123abc'
```
2、使用float()函數(shù)
float()函數(shù)可以將字符串轉(zhuǎn)換為浮點(diǎn)數(shù)類型。例如,將字符串"3.14"轉(zhuǎn)換為浮點(diǎn)數(shù)類型的代碼如下:
```
str_num = "3.14"
num = float(str_num)
print(num)
```
運(yùn)行結(jié)果為:
```
3.14
```
需要注意的是,如果字符串中包含非數(shù)字字符,則會(huì)拋出ValueError異常。例如,將字符串"3.14abc"轉(zhuǎn)換為浮點(diǎn)數(shù)類型的代碼如下:
```
str_num = "3.14abc"
num = float(str_num)
print(num)
```
運(yùn)行結(jié)果為:
```
ValueError: could not convert string to float: '3.14abc'
```
3、使用eval()函數(shù)
eval()函數(shù)可以將字符串轉(zhuǎn)換為Python表達(dá)式并求值。如果字符串表示一個(gè)數(shù)字,eval()函數(shù)會(huì)將其轉(zhuǎn)換為數(shù)字類型。例如,字符串"123"轉(zhuǎn)換為數(shù)字類型的代碼如下:
```
str_num = "123"
num = eval(str_num)
print(num)
```
運(yùn)行結(jié)果為:
```
123
```
需要注意的是,如果字符串中包含非數(shù)字字符,則會(huì)拋出SyntaxError異常。例如,將字符串"123abc"轉(zhuǎn)換為數(shù)字類型的代碼如下:
```
str_num = "123abc"
num = eval(str_num)
print(num)
```
運(yùn)行結(jié)果為:
```
SyntaxError: invalid syntax
```
4、使用isdigit()函數(shù)
isdigit()函數(shù)可以檢查字符串中是否只包含數(shù)字字符。如果是,返回True;否則返回False。例如,判斷字符串"123"是否是數(shù)字的代碼如下:
```
str_num = "123"
if str_num.isdigit():
print("是數(shù)字")
else:
print("不是數(shù)字")
```
運(yùn)行結(jié)果為:
```
是數(shù)字
```
需要注意的是,如果字符串中包含非數(shù)字字符,則返回False。例如,判斷字符串"123abc"是否是數(shù)字的代碼如下:
```
str_num = "123abc"
if str_num.isdigit():
print("是數(shù)字")
else:
print("不是數(shù)字")
```
運(yùn)行結(jié)果為:
```
不是數(shù)字
```
5、使用正則表達(dá)式提取字符串中的數(shù)字
正則表達(dá)式可以用來(lái)匹配特定的字符串格式??梢允褂谜齽t表達(dá)式提取字符串中的數(shù)字。例如,從字符串"abc123def456"中提取數(shù)字的代碼如下:
```
import re
str_num = "abc123def456"
pattern = re.compile(r'\d+')
nums = pattern.findall(str_num)
print(nums)
```
運(yùn)行結(jié)果為:
```
['123', '456']
```
需要注意的是,正則表達(dá)式中的"\d"表示數(shù)字字符,而"+"表示匹配至少一個(gè)數(shù)字字符。如果要匹配浮點(diǎn)數(shù),則可以使用"\d+\.\d+"作為正則表達(dá)式。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-714903.html
到了這里,關(guān)于Python中如何將字符串變成數(shù)字?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!