不使用int()函數的情況下把字符串轉換為數字,如把字符串"12345"轉換為數字12345。
方法一:利用str函數
既然不能用int函數,那我們就反其道而行,用str函數找出每一位字符表示的數字大寫。
def atoi(s): s = s[::-1] num = 0 for i, v in enumerate(s): for j in range(0, 10): if v == str(j): num += j * (10 ** i) return num
方法二:利用ord函數
利用ord求出每一位字符的ASCII碼再減去字符0的ASCII碼求出每位表示的數字大寫。
def atoi(s): s = s[::-1] num = 0 for i, v in enumerate(s): offset = ord(v) - ord('0') num += offset * (10 ** i) return num
方法三:利用eval函數
eval的功能是將字符串str當成有效的表達式來求值并返回計算結果。我們利用這特點可以利用每位字符構造成和1相乘的表達式,再用eval算出該表達式的返回值就表示數字大寫。
def atoi(s): s = s[::-1] num = 0 for i, v in enumerate(s): t = '%s * 1' % v n = eval(t) num += n * (10 ** i) return num
以上這篇Python不使用int()函數把字符串轉換為數字的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答