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