Discuss / Python / 练习

练习

Topic source

练习1: rom functools import reduce

def normailize1(name): return name[0].upper()+name[1:].lower()

L1=['admam','LISA','barT'] L2=list(map(normailize1,L1)) print(L2)

练习2: from functools import reduce

def prod(L): def fn(x,y): return xy return reduce(fn,L) print('3579=',prod([3,5,7,9]))

if prod([3,5,7,9])==945: print('test sucessfully') else: print('test failed')

练习3: from functools import reduce DIGITS={'1':1,'2':2,'3':3,'4':4,'5':5,'6':6}

def str2float(s): L=s.split('.',1)#利用split 函数将字符串以‘.’为分隔符分成2部分:整数部分,小数部分 L1=L[0]#将L第一个元素整数123赋值给L1 L2=L[1]#将L第2个元素小数部分456赋值给L2 L3=L2[::-1]#将456转换成654赋给L3 def fn1(x,y):#处理整数部分 return x*10+y def fn2(x,y):#处理小数部分,得出4.56,所以reduce 最后还要除以10 return x/10+y def char2num(s): return DIGITS[s]

return reduce(fn1,map(char2num,L1))+reduce(fn2,map(char2num,L3))/10

print(str2float('123.456'))


  • 1

Reply