python字符串转数字
把字符串转换成整数
http://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
# -*- coding:utf-8 -*- class Solution: def StrToInt(self, s): # write code here if len(s)==0 :return 0 #判断是否存在小数点 if '.' in s: s_int = s.split('.')[0] s_float = s.split('.')[1] else: s_int = s s_float = '' flag = 1 #正负数判断 if s[0]=='-':#若为负数,记录为-1 flag = -1 if s[0]=='+'or s[0]=='-':#判断字符串首位是否为符号位 s_int=s_int[1:]#去除符号位 l = len(s_int)-1 res = 0 ''' 从整数第一位开始,相当于是该位数字*10的幂次,幂次从高至低,幂次数值范围从[len(s_int)-1,-1) ''' for i in range(l,-1,-1): #从len(s_int)开始向下循环 if s_int[l-i] not in '1234567890':return 0 #判断该位是否为合法数字 res += int(s_int[l-i])*pow(10,i) for j in range(-1,-len(s_float)-1,-1):#小数部分,幂次从高至低,数值范围从[-1,-len(s_float)-1) if s_float[-j-1] not in '1234567890':return 0 res += int(s_float[-j-1])*pow(10,j) return res*flag