任务要求
九九乘法表的结构如下:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
...
1×9=9 2×9=18 ... 9×9=81
使用Python编写程序,按照上述格式打印出完整的九九乘法表。
任务分析
1.循环结构:使用嵌套循环生成乘法表的内容。
2.格式化输出:确保每一行的长度一致,并且右对齐。
3.效率优化:尽量减少不必要的计算和字符串拼接操作。
任务实现
方法一:双重循环实现。通过外层循环控制行数,内层循环控制列数,并动态生成每一行的内容。
# 外层循环控制行数(i从1到9)
for i in range(1, 10):
row = [] # 存储当前行的字符串
# 内层循环控制列数(j从1到i)
for j in range(1, i 1):
product = i * j
row.append(f"{j}×{i}={product:<2d}".ljust(5)) # 字符串化数字
# 将当前行的字符串拼接成一行
line = " ".join(row)
print(line)
方法二:列表推导式实现。通过列表推导式生成每一行的内容,并使用join()方法拼接字符串。
# 外层循环控制行数(i从1到9)
for i in range(1, 10):
# 使用列表推导式生成当前行的内容
row = [f"{j}×{i}={i * j}".ljust(5) for j in range(1, i 1)]
# 将当前行的字符串拼接成一行
line = " ".join(row)
print(line)
方法三:通过预先计算所有乘积并存储在二维列表中,减少重复计算的开销。
# 预先计算所有乘积并存储在二维列表中
multiplication_table = []
for i in range(1, 10):
row = []
for j in range(1, i 1):
row.append(f"{j}×{i}={i * j}".ljust(5))
multiplication_table.append(row)
# 输出结果
for row in multiplication_table:
line = " ".join(row)
print(line)
运行结果
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
进程已结束,退出代码为 0