Discuss / Python / 作业作业(字符串的一些builtin的函数不熟悉)

作业作业(字符串的一些builtin的函数不熟悉)

Topic source
# map函数:#     把函数作用在interable的每一个元素上,从而生成一个interator#         r = map(str,[1,2,3,4,5,6,7])#         list(r) --->('1','2','3'....)]## reduce函数:#     接收两个参数,并且把这两个参数的函数值用于和下一个参数一起再次进行函数运算:#         reduce(f,[x1,x2,x3,x4])  ---> f(f(f(x1,x2),x3),x4)from functools import reduce
def normalize(name):
    name = name[0].upper() + name[1:].lower()
    return name

# 测试:L1 = ['adam', 'LISA', 'barT']
L2 = list(map(normalize, L1))
print(L2)
print("-----------------")


def prod(L):
    r = reduce(lambda x,y:x*y,L)
    return r

print('3 * 5 * 7 * 9 =', prod([3, 5, 7, 9]))
if prod([3, 5, 7, 9]) == 945:
    print('测试成功!')
else:
    print('测试失败!')

print("-----------------")

def str2float(s):
    num_part = s.split('.')
    r = reduce(lambda x,y:x+y/(10**len(num_part[1])),map(int,num_part))
    return r

print('str2float(\'123.456\') =', str2float('123.456'))
if abs(str2float('123.456') - 123.456) < 0.00001:
    print('测试成功!')
else:
    print('测试失败!')

yvette_liao

#2 Created at ... [Delete] [Delete and Lock User]

用int()函数是作弊的,如果能用int,那也能用float(),直接就变浮点数了,哪来这么多段。


  • 1

Reply