题一:
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])
题一中的replace函数中是不是应该增加规定替换次数为1,否则如果后续字母有与首字母相同时也会被替换成大写?
楼上说的没错,如果不指定次数,打印结果是
['AdAm', 'Lisa', 'Bart']
题一为什么会出现这种问题啊?不懂,有可以帮忙解答的吗?
请教:为什么第三题 return s1+s2/10**len(s[1]) 这里不能用 len(s2)呢?
s2是一个int,不能作为len()的参数
Sign in to make a reply
AI__Al
题一:
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])