在Python中,可以使用以下幾種方法將字符串轉(zhuǎn)換為整數(shù):
使用內(nèi)置函數(shù)int()
: int()函數(shù)將字符串作為參數(shù),并返回相應(yīng)的整數(shù)值。如果字符串包含非數(shù)字字符,則會(huì)引發(fā)ValueError
異常。例如:
s = "123"
num = int(s)
print(type(num), num) # 123
使用eval()
函數(shù): eval()函數(shù)評(píng)估字符串并返回結(jié)果。它可以執(zhí)行字符串中的任何有效Python表達(dá)式,并返回表達(dá)式的結(jié)果。例如:
s = "123"
num = eval(s)
print(type(num), num) # 123
然而,使用eval()
函數(shù)需要謹(jǐn)慎使用,因?yàn)樗梢詧?zhí)行任意代碼,可能存在安全風(fēng)險(xiǎn)。
使用位運(yùn)算符<<
: 位運(yùn)算符<<
將一個(gè)字符串參數(shù)視為二進(jìn)制,然后返回對(duì)應(yīng)的十進(jìn)制整數(shù)。例如:
s = "123"
num = 0
for digit in s:
num = (num << 3) + (num << 1) + int(digit)
print(type(num), num) # 123
此方法通過(guò)將數(shù)字字符轉(zhuǎn)換為整數(shù),并將其通過(guò)乘以2、4和8來(lái)累積,然后加上下一個(gè)數(shù)字字符的整數(shù)值,以創(chuàng)建最終的整數(shù)。
需要注意的是,以上方法都要求字符串是合法的表示整數(shù)的形式,否則將引發(fā)異常。如果字符串包含除數(shù)字字符外的其他字符,需要在轉(zhuǎn)換之前進(jìn)行處理或者使用適當(dāng)?shù)漠惓L幚頇C(jī)制。