记录函数里面的return和print的区别:return返回的值是有类型的(如int,float,str等等),而print打印出来的值是Nonetype。
开始用了print作返回,结果测试的时候Nonetype无法被绝对值函数计算,被坑死...
from functools import reduce def char2num(i): digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '.':'.'} return digits[i] def f1(x,y): return 10*x+y def str2float(k): if k == '': print('请输入值') else: s=list(map(char2num,k)) s1=[s[i] for i in range(0,k.find('.'))] s2=[s[i] for i in range(k.find('.')+1,len(s))] return reduce(f1,s1)+reduce(f1,s2)/10**(len(s2)) #测试: if abs(str2float('123.456') - 123.456) < 0.00001: print('测试成功!') else: print('测试失败!')
Sign in to make a reply
巴啦啦神奇泡泡水biubiu
记录函数里面的return和print的区别:return返回的值是有类型的(如int,float,str等等),而print打印出来的值是Nonetype。
开始用了print作返回,结果测试的时候Nonetype无法被绝对值函数计算,被坑死...