绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
python入门初体验,写出乘法表只是毛坯房,让结果对齐才是精装修
2019-11-22 11:36:16

比目鱼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,欢迎大侠指教!

分享好友

分享这个小栈给你的朋友们,一起进步吧。

应用开发
创建时间:2020-06-17 15:31:04
应用软件开发是指使用程序语言C#、java、 c++、vb等语言编写,主要是用于商业、生活应用的软件的开发。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~