def str2float(s):
flag = 0
g = 1.0
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '.': 10}
def fn(x, y):
print(g)
if y != 10 and flag == 0:
return x * 10 + y
elif y == 10 and flag == 0:
flag = 1
return x
else:
g = g * 0.1
print(g)
return x + y * g
def char2num(s):
return DIGITS[s]
return reduce(fn, map(char2num, s))
题目要求:利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456:
其中g和flag两个参数显示未定义但DIGITS却可以正常调用请问为什么。