Discuss / Python / 作业

作业

Topic source

LeborYi

#1 Created at ... [Delete] [Delete and Lock User]
#把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。
L1 = ['adam', 'LISA', 'barT']
print('用户输入的不规范的英文名字为:%s' % L1)
print('整理后的规范格式名字:',end = '')
print(list(map(lambda name:name[0].upper() + name[1:].lower(),L1)))
#编写一个prod()函数,可以接受一个list并利用reduce()求积.
from functools import reduce

def proud(L):
    def f(x,y):
        return x * y
    return reduce(f,L)

print('3 * 5 * 7 * 9 =', prod([3, 5, 7, 9]))
#编写一个str2float函数,把字符串'123.456'转换成浮点数123.456
from functools import reduce

def str2float(s):
    [s0,s1] = s.split('.')
    def fn(x,y):
        return x * 10 + y              #把序列变换成整数
    #lambda x,y : x * 10 + y

    def char2num(s):
        return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]          #把字符变换成数字


    return reduce(fn,map(char2num,s0)) + reduce(fn,map(char2num,s1)) / pow(10,len(s1))                            #前半部分>1 + 小数部分

    print('str2float(\'123.456\') =', str2float('123.456'))

第三题借鉴了大腿子的,查找split()与pow()的用法,其实自己已经写到return语句前面一部分了,一直在思考如何处理小数点'.',想用拼接,但是拼接之后肯定不是float型了。感谢大手子!手动比心


  • 1

Reply