1. 程式人生 > >Python不使用int()函式把字串轉換為數字

Python不使用int()函式把字串轉換為數字

不使用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