实现九九乘法表的函数可以使用嵌套循环来实现。
首先我们来看一个示例代码:
def multiplication_table():
for i in range(1, 10):
for j in range(1, i+1):
print("%d*%d=%d" % (i, j, i*j), end='\t')
print('')
multiplication_table()
运行上述代码,我们将得到以下输出:
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
我们来逐步分析代码:
- 定义函数
multiplication_table()
,该函数不需要接受任何参数。 - 使用外层循环遍历1到9之间的所有数字,即
for i in range(1, 10):
。 - 在第一个循环的基础上,再加上一个循环,遍历1到i之间的数字,即
for j in range(1, i+1):
。因为任何数乘1都等于自己,因此我们只需要遍历到i即可。 - 对于每个乘法运算,使用字符串格式化输出,即
print("%d*%d=%d" % (i, j, i*j), end='\t')
。其中%d
表示整数占位符,i
表示乘数1,j
表示乘数2,i*j
表示乘积。end='\t'
表示输出每个运算后不换行,使用制表符进行分隔。 - 每完成一轮乘法运算后,需要在下一行输出,使用
print('')
即可。
我们再来看一个使用列表推导式的示例代码:
def multiplication_table():
[print('\t'.join(['%d*%d=%d' % (j, i, j*i) for j in range(1, i+1)])) for i in range(1, 10)]
multiplication_table()
运行上述代码,我们将得到以下输出:
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
我们来逐步分析代码:
- 定义函数
multiplication_table()
,该函数不需要接受任何参数。 - 使用列表推导式的方式遍历1到9之间的所有数字,即
[print('\t'.join(['%d*%d=%d' % (j, i, j*i) for j in range(1, i+1)])) for i in range(1, 10)]
。 - 在内层循环中,使用列表推导式生成每个乘法运算的字符串,即
['%d*%d=%d' % (j, i, j*i) for j in range(1, i+1)]
。其中%d
表示整数占位符,i
表示乘数1,j
表示乘数2,i*j
表示乘积。 - 将所有的乘法运算字符串列表使用制表符连接起来输出,即
print('\t'.join(...))
。 - 在完成所有乘法运算后,需要在下一行输出,使用
print()
即可。
希望以上例子能对你有所帮助。