题目

编写程序,输出如下图所示的九九乘法表:
在这里插入图片描述

考察

for循环、字符串格式化

代码及实现过程

解法初探

方法本质为双for循环嵌套,其中还利用到了字符串格式化:字符串格式化用法

for i in range(1,10):
    for j in range(1,i+1):
        print('{}x{}={}'.format(j,i,i*j))
    print('')

部分输出如下:

1x1=1

1x2=2
2x2=4

1x3=3
2x3=6
3x3=9

1x4=4
2x4=8
3x4=12
4x4=16

1x5=5
2x5=10
3x5=15
4x5=20
5x5=25

1x6=6
2x6=12
...

输出结果不理想,没有实现题目要求的格式,但似乎只需要让每一部分不自动换行就可以实现目标…

方法1

考虑到上述问题,可以参考以下文章进行代码改进优化:“\n”、“\t”、“end”的用法

利用end = "可以达到不换行的目的

for i in range(1,10):
    for j in range(1,i+1):
        print('{}x{}={}\t'.format(j,i,i*j),end='')
        # print('{}x{}={}'.format(j,i,i*j),end='  ')  # 此写法也行
        # print(f'{j}x{i}={i*j}', end='  ')  # 此写法也行
    print('')

输出:

1x1=1  
1x2=2  2x2=4  
1x3=3  2x3=6  3x3=9  
1x4=4  2x4=8  3x4=12  4x4=16  
1x5=5  2x5=10  3x5=15  4x5=20  5x5=25  
1x6=6  2x6=12  3x6=18  4x6=24  5x6=30  6x6=36  
1x7=7  2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49  
1x8=8  2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64  
1x9=9  2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81 

方法2

方法2与方法1本质一样,不同处为版本更新带来的语法差异,现版本多用上述str.format()进行“字符串格式化”,而旧版本则用d

for i in range(1,10):
    for j in range(1,i+1):
        print('%dx%d=%d' % (j,i,i*j),end='  ')
    print('')

输出:

1x1=1  
1x2=2  2x2=4  
1x3=3  2x3=6  3x3=9  
1x4=4  2x4=8  3x4=12  4x4=16  
1x5=5  2x5=10  3x5=15  4x5=20  5x5=25  
1x6=6  2x6=12  3x6=18  4x6=24  5x6=30  6x6=36  
1x7=7  2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49  
1x8=8  2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64  
1x9=9  2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81 

参考资料:
https://cloud.tencent.com/developer/article/1559802
https://www.cnblogs.com/pychina/p/10171922.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐