Discuss / Python / 第三题

第三题

Topic source

龙宝198505

#1 Created at ... [Delete] [Delete and Lock User]
    s1=''
    for i in s:
        if i !='.':
            s1=s1+i
    n=10**s.index('.')
    digits={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
    def char2num(s1):
        return(digits[s1])
    s=reduce(lambda x,y:x*10+y,map(char2num,s1))
    return(s/n)

是不是改成

n=10** (len(s)-s.index('.')-1)

要更好呢?

毕竟如果不是’123.456‘这种小数点前后位数一样的字符串的话,会出现问题。


  • 1

Reply