学员信息
- 学号:1901100244
- 操作系统:Windows 10 version 1903 (64-bit)
- 学习内容:打印两种形式的九九乘法表
- 学习用时: 小时
收获总结
- 了解了条件判断(
if...elif...else
)语句的用法; - 了解了循环(
for...in
、while
、break
、continue
)语句的搭配和使用; - 了解了生成数字序列的方法(使用
range()
函数); - 巩固了格式化输出(
print()
函数)的方法。
遇到的难点与问题
1. 去除多余的输出
通过两层循环嵌套输出大九九并不困难,但在这个基础上去掉一半输出小九九就稍有难度了。
我个人是通过做一次条件判断,只输出一数小于或等于另一数的情况完成了任务。
任务的第二部分要求去掉九九表的偶数行,这个困扰了我一阵子。
判断是不是偶数行不难,求余(“%
”)就行了,加个 if
判断一下再输出就可以完成任务。
但任务要求用 while
循环来实现。
开始我就只用 while
加了一个判断,运行的时候发现会导致无限循环,又看了看文档,明白得配合 break
用,但 while
和 break
具体加在哪里颇费了一番思量。来回试验了好久,甚至手绘了流程图,我才实现了需要的输出。
2. 不同的输出形式
任务中的要求输出是这样的——
但这个输出有几个不尽如人意的地方:
- 对齐不正,第 4 行和第 5 行的空隙由于进位歪了;
- 符号不当,乘号应该写作“×”,使用星号(*)替代是不得已而为之,不应当作正式用法;
- 顺序不佳,习惯中的九九表应该是小数在前大数在后,此处颠倒了。
这几个问题的解决方法倒很简单:
- 把
print()
函数的结尾符设置为制表符即可(不知为什么教程里特意写了这么一句但示意输出却用的是 3 个空格); - 把
print()
里的“*”改成“×”即可; - 把
print()
里的变量顺序调整一下即可。
除此之外,我还试了一下另一个方向的九九表——
这是常见的九九表的转置,也是最初的大九九去掉另外一半的效果,不过这么排版对对齐有进一步的要求,也算是额外的练习了。
3. 不同的循环方式
除了原本的要求外,我还试验了其他完成任务的方式,如:
- 用变量控制
range()
函数的右边界以省略两数大小判断; - 把循环区间设定为
[1, 3, 5, 7, 9]
以省略while
循环; - 用
if
替代while
实现判断; - 用
if...continue
替代while...break
实现判断。
算是把不同的循环方式都练习了几遍。
总结
- 输出了不同形式的九九表
- 改善了原始的输出形式
- 用不同方式完成了任务
- 通过逐步尝试优化代码