python int 仿php的intval

import  time

def str2int(s):
    try:
        return int(s)
    except:
        if('-'==s[0]):
            return 0 - str2int(s[1:])
        elif s[0] in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
            num = 0
            for i in range(len(s) ):
                if s[i] in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
                    num = num * 10 + int(s[i])
                else:
                    return num
        else:
            return 0


#print(str2int(''))



def str2int2(s):
    try:
        return int(s)
    except:
        if len(s) == 0:
            return 0
        if('-'==s[0]):
            return 0 - str2int(s[1:])
        else:
            num=''
            for i in s:
                if i in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
                    num += i
                else:
                    break
            return int(num)



# print(int(''))


print(str2int('-343sxxx'))

time1=time.time()
for i in range(0,100000):
    str2int('112311312ssdx311231231231ssdx')
time2 =time.time()

print(time2-time1)


print(str2int2('-343sxxx'))

time1=time.time()
for i in range(0,100000):
    str2int2('112311312ssdx311231231231ssdx')
time2 =time.time()

print(time2-time1)

######方法2,效率好一些。

-343
0.7150411605834961
-343
0.43802499771118164

posted @ 2020-08-05 11:38  野草香香  阅读(142)  评论(0)    收藏  举报