一, 准备基础
学完python学习系列-培训课的循环语句之后可做
二, 题目
问题1:使用while打印出如下结构的九九乘法表
问题2:使用for实现问题1
三,解析及源代码
问题1
分析:
(1)大致分析实现流程:有两个需要通过程序设计的数,通过观察,第一个乘数为从1到第n行的n,第二个乘数为第n行的n,分别相乘再打印字符串,在第一个乘数为n时进行换行
(2)可以看出,首先要实现在第一个乘数递增到=当前n之前,要打印出乘法式以及实现第一个乘数的自1递增,然后要实现第一个乘数递增到=当前n时,需要换行并且将第二个乘数+1,然后再进行第一步
(3)边界判断,当line = 9时,终止程序,那么程序的结构就比较明显了
b = 1 #第二个乘数
line = 1 #初始行
while line <= 9: #边界判断
while b <= line: #判断此时第一个乘数是否递增到=当前n
print(f'{b}×{line}={line*b}', end=' ') #f-string字符串格式化输出乘法公式,以空格符进行拼接
b += 1 #实现第一个乘数的自1递增
else:
b = 1
line += 1
print('\n')
输出为
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
问题2
分析:
(1)和问题1的实现流程类似,只是可以把+1的自增过程转变成在序列的遍历过程,生成一个1到n的列表则可以借助range函数
for b in range(1,10):
for a in range(1,b+1):
print(f'{a}×{b}={a*b}',end=' ')
print('\n')
输出为
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81