第三题拆分写的略麻烦 可以直接切片 再改一改
#1 def normalize(name): #return name.capitalize() return name[:1].upper()+name[1:].lower() #2 from functools import reduce def prod(L): return reduce(lambda x,y:x*y,L) #3 #思路 将小数字符串拆分为整数字符串列表 一个点 倒序的小数部分整数字符串列表 第一个列表x*10+y reduce&map 加上 第二个列表x*0.1+y reduce&map*0.1 即为最后结果 from functools import reduce def str2float(s): DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} i=0 str1=[] str2=[] def char2num(s): return DIGITS[s] def fn1(x, y): return x * 10 + y def fn2(x, y): return x * 0.1 + y l=len(s) while i<l-1 and s[i]!='.': str1.append(s[i]) i=i+1 i=i+1 while i<l: str2.insert(0,s[i]) i=i+1 #print('str1',str1,) #print('str2',str2,) return reduce(fn1,map(char2num,str1))+reduce(fn2,map(char2num,str2))*0.1
Sign in to make a reply
★&Lucky☆繁星
第三题拆分写的略麻烦 可以直接切片 再改一改