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          
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务