2019-08-11-1901100244-自学训练营-Python入门-Day04-学习心得

学员信息

  • 学号:1901100244
  • 操作系统:Windows 10 version 1903 (64-bit)
  • 学习内容:打印两种形式的九九乘法表
  • 学习用时: 小时

收获总结

  1. 了解了条件判断(if...elif...else)语句的用法;
  2. 了解了循环(for...inwhilebreakcontinue)语句的搭配和使用;
  3. 了解了生成数字序列的方法(使用 range() 函数);
  4. 巩固了格式化输出(print() 函数)的方法。

遇到的难点与问题

1. 去除多余的输出

通过两层循环嵌套输出大九九并不困难,但在这个基础上去掉一半输出小九九就稍有难度了。

我个人是通过做一次条件判断,只输出一数小于或等于另一数的情况完成了任务。

任务的第二部分要求去掉九九表的偶数行,这个困扰了我一阵子。

判断是不是偶数行不难,求余(“%”)就行了,加个 if 判断一下再输出就可以完成任务。

但任务要求用 while 循环来实现。

开始我就只用 while 加了一个判断,运行的时候发现会导致无限循环,又看了看文档,明白得配合 break 用,但 whilebreak 具体加在哪里颇费了一番思量。来回试验了好久,甚至手绘了流程图,我才实现了需要的输出。

2. 不同的输出形式

任务中的要求输出是这样的——

九九乘法表(原始)

但这个输出有几个不尽如人意的地方:

  1. 对齐不正,第 4 行和第 5 行的空隙由于进位歪了;
  2. 符号不当,乘号应该写作“×”,使用星号(*)替代是不得已而为之,不应当作正式用法;
  3. 顺序不佳,习惯中的九九表应该是小数在前大数在后,此处颠倒了。

这几个问题的解决方法倒很简单:

  1. print() 函数的结尾符设置为制表符即可(不知为什么教程里特意写了这么一句但示意输出却用的是 3 个空格);
  2. print() 里的“*”改成“×”即可;
  3. print() 里的变量顺序调整一下即可。

除此之外,我还试了一下另一个方向的九九表——

九九乘法表(转向)

这是常见的九九表的转置,也是最初的大九九去掉另外一半的效果,不过这么排版对对齐有进一步的要求,也算是额外的练习了。

3. 不同的循环方式

除了原本的要求外,我还试验了其他完成任务的方式,如:

  • 用变量控制 range() 函数的右边界以省略两数大小判断;
  • 把循环区间设定为 [1, 3, 5, 7, 9] 以省略 while 循环;
  • if 替代 while 实现判断;
  • if...continue 替代 while...break 实现判断。

算是把不同的循环方式都练习了几遍。

总结

  • 输出了不同形式的九九表
  • 改善了原始的输出形式
  • 用不同方式完成了任务
  • 通过逐步尝试优化代码