Discuss / Python / 作业

作业

Topic source

第一题作业看了下面的s.capitalize()函数,开始死活调不好。

第二题没问题

第三题作业,百度了一下查找字符的函数,开始用s.index()可是在没有要找的字符时会出错。改用s.find()无误。

用了下help()发现当没找到要求的字符时,index返回valueError,find返回-1

from functools import reduce

def str2float(s):
    def number(L):
        return  {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[L]
    def f1(x,y):
        return x*10+y
    def f2(x):
        l=len(x)
        return float(x)/(10**l)
    position=s.find('.')
    if position<1:
        return reduce(f1,map(number,s))
    else:
        s1=s[:position]
        s2=s[position+1:]
        #print(s2)
        n1=reduce(f1,map(number,s1))
        #print(n1)
        #print(f2(s2))
        return float(n1)+f2(s2)

input1=input('shuru:')    
print(input1)
print(isinstance(input1,float))
print(str2float(input1))
print(isinstance(str2float(input1),float))

  • 1

Reply