Discuss / Python / OK!

OK!

Topic source

AI__Al

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

题一:

   name=name.lower()

   name=name.replace(name[0],name[0].upper())

   return name

题二:

def prod(L):

    a=reduce(lambda x,y:x*y,L)

    return a

题三:

def str2float(s):

    s=s.split('.')

    def char2num(s):

        DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

        return DIGITS[s]

    def fn(x, y):

        return x * 10 + y

    s1=reduce(fn,map(char2num,s[0]))

    s2=reduce(fn,map(char2num,s[1]))

    return s1+s2/10**len(s[1])

鲸_蓝

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

题一中的replace函数中是不是应该增加规定替换次数为1,否则如果后续字母有与首字母相同时也会被替换成大写?

楼上说的没错,如果不指定次数,打印结果是

['AdAm', 'Lisa', 'Bart']

一别一生r

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

题一为什么会出现这种问题啊?不懂,有可以帮忙解答的吗?

lemour爱

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

请教:为什么第三题 return s1+s2/10**len(s[1]) 这里不能用 len(s2)呢?

s2是一个int,不能作为len()的参数


  • 1

Reply