ITPub博客

首页 > 应用开发 > > python入门初体验,写出乘法表只是毛坯房,让结果对齐才是精装修

python入门初体验,写出乘法表只是毛坯房,让结果对齐才是精装修

作者:nt1979 时间:2019-11-22 11:36:16 0 删除 编辑

比目鱼2号 



学python的伙伴们应该都写过乘法表代码,基本就是两个for循环,很简短的代码,轻松就能实现。但往往简单的代码,生成的乘法表并没有完全对齐,如下面的简单代码生成的结果:

for i in range(1, 10):

print()

for j in range(1, i+1):

print('%-d*%-d=%-d' % (j, i, i*j), end=' ')

箭头位置结果未完全对齐

当加大乘法表数据时,错位情况更明显

经分析,是因为数据的位数不同,所以造成错位。数据越大,位数相差也越大。如下图相差就非常明显。这样的效果明显是不满意的。

通过对代码进行优化,设置交互式功能,输入起止数字,生成结果能完成对齐。

def cfkj(num1, num2):

for i in range(num1, num2+1):

print()

print('%*d: ' % (len(str(num2)), i), end="")

for j in range(num1, i+1):

print('%-d*%-d=%-*d' % (j, i, len(str(num2*num2)), i*j),

end=' '*(len(str(num2))+2-len(str(i))))

if __name__ == "__main__":

strer = input('输入起止数字,中间用"-"隔开:')

beginer = int(strer[:strer.find("-")])

ender = int(strer[strer.find("-")+1:])

cfkj(beginer, ender)

print()

这下是不是看着顺眼了。

刚接触python,欢迎大侠指教!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4822/viewspace-3137504/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-05

  • 博文量
    318
  • 访问量
    17318