8.输出 9*9 口诀

柳志军 / 2024-09-18 / 原文

【程序 8】
题目:输出 9*9 口诀。
1.程序分析:分行与列考虑,共 9 行 9 列,i 控制行,j 控制列。
2.程序源代码:
# 输出9*9乘法口诀表
for i in range(1, 10):  # 控制行
    for j in range(1, i + 1):  # 控制列,只输出上三角部分
        result = i * j
        print('%d * %d = %-3d' % (i, j, result), end=' ')
    print('')  # 每一行后换行

代码解析:

  1. 外层循环 for i in range(1, 10):控制行变量 i,范围从1到9,表示乘法表中的每一行。

  2. 内层循环 for j in range(1, i + 1):控制列变量 j,其范围从1到 i,这样可以只打印出乘法表的上三角部分。例如,当 i=3 时,内层循环会打印 1*12*12*23*13*23*3

  3. 计算结果 result = i * j:每次乘法计算的结果。

  4. 输出格式 print('%d * %d = %-3d' % (i, j, result), end=' '):格式化输出乘法表。%-3d表示结果左对齐,占3个字符的宽度,end=' '确保在同一行输出。

  5. print(''):在内层循环结束后添加换行,开始下一行打印。

输出结果示例:

代码运行后将输出如下格式的乘法表:

1 * 1 = 1  
2 * 1 = 2  2 * 2 = 4  
3 * 1 = 3  3 * 2 = 6  3 * 3 = 9  
4 * 1 = 4  4 * 2 = 8  4 * 3 = 12  4 * 4 = 16  
5 * 1 = 5  5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25  
6 * 1 = 6  6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36  
7 * 1 = 7  7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49  
8 * 1 = 8  8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64  
9 * 1 = 9  9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81  
方法二:
for i in range(1,10):
string = ""
for j in range(1,i+1):
string +=str(j)+"*"+str(i)+"="+str(i*j)+"\t"
print(string)

方法三:
for i in range (1,10):
for j in range(1,i+1):
print(str(j)+"*"+str(i)+"="+str(i*j)+"\t",end="")
print("\n",end="")

方法四:
for i in range(1, 10): # 乘法表的第一个数(乘数),从1到9
for j in range(1, i+1): # 乘法表的第二个数(被乘数),从1到当前的i(因为乘法表是上三角的)
# 打印乘法表的一项,end参数用于在同一行打印多个项,不换行
# 使用格式化字符串来对齐输出,确保乘法表的整洁
print(f"{j}x{i}={i*j}\t", end='')
# 当一行打印完毕后,输出换行符以开始新的一行
print()

方法五:
# 使用列表推导式和join方法生成并打印乘法表
for i in range(1, 10):
# 列表推导式生成乘法表的每一行
row = [f"{j}*{i}={i*j}" for j in range(1, i+1)]
# 使用join方法连接行中的字符串,并用制表符分隔
print('\t'.join(row))