编写整体程序前,分析打印乘法表应有以下三部分:
观察1×1=1和2×9=9,可以分析得到两个乘数应能变化,的数为二者积,因此,将乘数写作变量输出上述形式:
a,b=1,1
print("{}×{}={}".format(a, b, a*b))
输出所有乘法表内容,需要重复使用print函数,并且对于a,b两个变量的值需要不断改变,因此使用循环结构,控制两个变量的改变,使用嵌套循环结构。
观察乘法表特征,两乘数恰好与行列数分别一致,因此外层循环控制行数改变,内层循环控制列数改变,使用索引作为乘数进行计算和输出。
for a in range(1,10): # 前闭后开区间,不包括10
for b in range(1,a+1): # 同理不包括a+1
print("{}×{}={}".format(b,a,a*b))
注:由于乘法表一般习惯为与行数一直的乘数在前,因此将print函数中的变量a,b交换位置
输出结果为:
1×1=1
1×2=2
2×2=4
··· # 此处内容省略
6×9=54
7×9=63
8×9=72
9×9=81
上图每个输出结果都自动换行,为改变形式,将每个输出改为以空格结束(做分割)
for a in range(1,10): # 前闭后开区间
for b in range(1,a+1):
print("{}×{}={}".format(b,a,a*b), end=" ")
输出结果为:
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
现需在乘法表每行结束加入换行,即外层循环(控制行数)内加入换行,如下:
for a in range(1,10): # 前闭后开区间
for b in range(1,a+1):
print("{}×{}={}".format(b,a,a*b), end=" ")
print()
完成九九乘法表输出:
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
原理同下三角,上三角显示时,行数为从9~1倒序,因此改变外层循环行数控制范围起止和步长即可:
for a in range(9, 0, -1): # 前闭后开区间
for b in range(1, a + 1):
print("{}×{}={}".format(b, a, a * b), end=" ")
print()
输出为:
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
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×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×4=4 2×4=8 3×4=12 4×4=16
1×3=3 2×3=6 3×3=9
1×2=2 2×2=4
1×1=1
range函数中范围为前开后闭区间
range(9, 0, -1)中第三位-1代表步长
print(“{}×{}={}”.format(b, a, a * b), end=" ")
参数end=“”代表以“”中内容结束