# -*- coding: utf-8 -*-
# 第一题
def normalize(name):
return name[0].upper()+name[1:].lower()
# print(list(map(normalize,['maRila','petER','lLll','lYh'])))
# 第二题
# 此题的问题在于函数默认传参,一般来讲是int或float。list未能提前声明,所以使用时报错,可以里面进行切片告诉编译器这是一个iterable
from functools import reduce
def prod(ls):
return reduce(lambda x,y : x*y , ls[:])
print(prod([1,2,3]))
# print(reduce(lambda x,y : x*y , [1,2,4,5]))
# 第三题
def char2num(c):
if c=='.':
return '.'
else:
return int(c)
def str2float(s):
ls=list(map(char2num,s))
if '.' in ls:
idx = int(ls.index('.'))
x=reduce(lambda x,y:x*10+y,ls[0:idx])
y=reduce(lambda x,y:x*0.1+y,[0.1*x for x in ls[-1:idx:-1]])
return x+y
return reduce(lambda x,y:x*10+y,ls)
# print(str2float('12333.23432'))
Sign in to make a reply
岁益寒
# -*- coding: utf-8 -*-
# 第一题
def normalize(name):
return name[0].upper()+name[1:].lower()
# print(list(map(normalize,['maRila','petER','lLll','lYh'])))
# 第二题
# 此题的问题在于函数默认传参,一般来讲是int或float。list未能提前声明,所以使用时报错,可以里面进行切片告诉编译器这是一个iterable
from functools import reduce
def prod(ls):
return reduce(lambda x,y : x*y , ls[:])
print(prod([1,2,3]))
# print(reduce(lambda x,y : x*y , [1,2,4,5]))
# 第三题
from functools import reduce
def char2num(c):
if c=='.':
return '.'
else:
return int(c)
def str2float(s):
ls=list(map(char2num,s))
if '.' in ls:
idx = int(ls.index('.'))
x=reduce(lambda x,y:x*10+y,ls[0:idx])
y=reduce(lambda x,y:x*0.1+y,[0.1*x for x in ls[-1:idx:-1]])
return x+y
else:
return reduce(lambda x,y:x*10+y,ls)
# print(str2float('12333.23432'))