提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
学习记录。
第一次写博客,欢迎大家提出自己的意见或者建议。
一、运用到的python基础知识
while循环:
while 条件: #条件为真则继续执行
执行语句 #条件为真,则执行该语句
占位符:
使用 %s实现占位 % 值,传多个值采用%(值1,值2)
%s(针对所有数据类型)
%d(仅仅针对数字类型)
输出不换行的方式:
在print()括号里面,末尾加上end=“”
二、步骤
第一步:我们需要先清楚我们要实现的效果是什么样子的
第二步:清楚了实现效果,来分析实现方案
2.1 为了方便理解,我把上方的九九乘法表补全了,补全成简易版本的九九乘法表,这样是不是就简单理解了:
2.2 然后拆解出第一行,并用代码实现:
i=1
while i<=9:
print(" 1*%s=%s"%(i,1*i),end=" ")
i+=1
2.3 接着拆解出第二行,并用代码实现:
i=1
while i<=9:
print(" 2*%s=%s"%(i,2*i),end=" ")
i+=1
2.4 继续,实现,第三行、第四行…第九行,是否发现个规律,每增加一行,这个位置的数字就+1:
2.5 把这个规律提取出来,设计成变量我们再来看看实现效果:
i=1
while i<=9:
j=1
while j<=9:
print(" %s*%s=%s"%(j,i,i*j),end=" ")
j+=1
print()
i+=1
2.6 到这里,我们已经实现2.1里说的简易版九九乘法表的效果,就差最后一步了!!!(ง •_•)ง!
第三步:优化代码
3.1 :我对图一、图二的每一行进行了比较。
3.2 我发现,在每一行,当i<j的时候,就不会在继续执行剩下公式的输出
3.3 到这里我地第一反应是在代码第四行插入一条条件判断语句,但是仔细观察,就会发现,其实第四行和第五行代码的效果是一样的,这样就造成代码冗余。
3.4 经过最后的敲打,我把冗余的代码结合起来:
i=1
while i<=9:
j=1
while j<=i:
print(" %s*%s=%s"%(j,i,i*j),end=" ")
j+=1
print()
i+=1
3.5 我们运行看看最终的效果吧!
三、扩展
for循环实现方式
for i in range(1, 10):
for j in range(1,i+1):
print(" %s*%s=%s\t" % (j, i, i * j), end="")
j += 1
print()
i += 1
总结
古人常说:“大事化小,小时化l”,我觉得很有道理,有时候一个问题想不出来解决办法,可以进行拆分,再拆分,再难的问题也能解决。