Discuss / Python / 三道题都已经过测试(自己的解法可能略有不同),欢迎给出建议

三道题都已经过测试(自己的解法可能略有不同),欢迎给出建议

Topic source

无虑43793

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

第一题 sTob={'a':'A','b':'B','c':'C','d':'D','e':'E','f':'F','g':'G','h':'H','i':'I','j':'J','k':'K','l':'L','m':'M','n':'N','o':'O','p':'P','q':'Q','r':'R','s':'S','t':'T','u':'U','v':'V','w':'W','x':'X','y':'Y','z':'Z'} bTos={'A':'a','B':'b','C':'c','D':'d','E':'e','F':'f','G':'g','H':'h','I':'i','J':'j','K':'k','L':'l','M':'m','N':'n','O':'o','P':'p','Q':'q','R':'r','S':'s','T':'t','U':'u','V':'v','W':'w','X':'x','Y':'y','Z':'z'}

def normalize(name): ss='' for x,s in enumerate(name): if x==0: ss+=sTob.get(s,s) else: ss+=bTos.get(s,s) return str(ss)

第二题 def prod(L): def produc(x,y): return x*y return reduce(produc,L)

第三题 digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9,'.':'.','-':'-'} from functools import reduce

def str2float(s): def fn(x,y): return x10+y def zb(m): return digits[m] def ab(L): L=map(zb,L) a=[] b=[] c='' flag=True for ss in L: if ss=='-': c='-' elif ss=='.': flag=False elif flag: a.append(ss) else: b.append(ss) return a,b,c l=ab(s) if(l[-1]): return -(reduce(fn,l[0])+reduce(fn,l[1])pow(10,-len(str(reduce(fn,l[1]))))) else: return reduce(fn,l[0])+reduce(fn,l[1])*pow(10,-len(str(reduce(fn,l[1]))))


  • 1

Reply