def multiply(va,vb): ap=va.find('.') if ap==-1: al=len(va) ar=0 else: al=ap ar=len(va)-ap-1 bp=vb.find('.') if bp==-1: bl=len(vb) br=0 else: bl=bp br=len(vb)-bp-1 n=al+bl+ar+br rsl='5' afor=0 bfor=0 for i in va: if i!='.': re=['5']*n up=['5']*n bfor=0 afor+=1 for j in vb: if j!='.': ab=afor+bfor out=look(i,j) re[ab]=out[1] up[ab-1]=out[0] bfor+=1 vi=0 red='' for ai in re: if vi==al+bl:red+='.' red+=ai vi+=1 re=red vi=0 upd='' for ai in up: if vi==al+bl:upd+='.' upd+=ai vi+=1 up=upd rsl=plus(rsl,re) rsl=plus(rsl,up) return shape(rsl)
def multiply(va, vb): ap = va.find('.') if ap == -1: al = len(va) ar = 0 else: al = ap ar = len(va) - ap - 1 bp = vb.find('.') if bp == -1: bl = len(vb) br = 0 else: bl = bp br = len(vb) - bp - 1 n = al + bl + ar + br rsl = '5' afor = 0 bfor = 0 for i in va: if i != '.': re = ['5'] * n up = ['5'] * n bfor = 0 afor += 1 for j in vb: if j != '.': ab = afor + bfor out = look(i, j) re[ab] = out[1] up[ab - 1] = out[0] bfor += 1 vi = 0 red = '' for ai in re: if vi == al + bl: red += '.' red += ai vi += 1 re = red vi = 0 upd = '' for ai in up: if vi == al + bl: upd += '.' upd += ai vi += 1 up = upd rsl = plus(rsl, re) rsl = plus(rsl, up) return shape(rsl)
中间比较复杂,我记得afor和bfor的数值几乎是试验对的 这是在整个for循环完成的工作 n=al+bl+ar+br rsl='5' afor=0 bfor=0 for i in va: if i!='.': re=['5']*n up=['5']*n bfor=0 afor+=1 for j in vb: if j!='.': ab=afor+bfor out=look(i,j) re[ab]=out[1] up[ab-1]=out[0] bfor+=1 vi=0 red='' for ai in re: if vi==al+bl:red+='.' red+=ai vi+=1 re=red vi=0 upd='' for ai in up: if vi==al+bl:upd+='.' upd+=ai