17. Python实战(三)

120 阅读3分钟

一, 准备基础

学完python学习系列-培训课的循环语句之后可做

二, 题目

问题1:使用while打印出如下结构的九九乘法表

image.png

问题2:使用for实现问题1

三,解析及源代码

问题1

分析:

(1)大致分析实现流程:有两个需要通过程序设计的数,通过观察,第一个乘数为从1到第n行的n,第二个乘数为第n行的n,分别相乘再打印字符串,在第一个乘数为n时进行换行

(2)可以看出,首先要实现在第一个乘数递增到=当前n之前,要打印出乘法式以及实现第一个乘数的自1递增,然后要实现第一个乘数递增到=当前n时,需要换行并且将第二个乘数+1,然后再进行第一步

(3)边界判断,当line = 9时,终止程序,那么程序的结构就比较明显了

b = 1 #第二个乘数

line = 1 #初始行

while line <= 9: #边界判断
    while b <= line:  #判断此时第一个乘数是否递增到=当前n
        print(f'{b}×{line}={line*b}', end=' ') #f-string字符串格式化输出乘法公式,以空格符进行拼接
        b += 1 #实现第一个乘数的自1递增
    else:
        b = 1
    line += 1
    print('\n')

输出为

1=12=2 2×2=43=3 2×3=6 3×3=94=4 2×4=8 3×4=12 4×4=165=5 2×5=10 3×5=15 4×5=20 5×5=256=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=367=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=498=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=649=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 

问题2

分析:

(1)和问题1的实现流程类似,只是可以把+1的自增过程转变成在序列的遍历过程,生成一个1到n的列表则可以借助range函数

image.png

for b in range(1,10):
    for a in range(1,b+1):
        print(f'{a}×{b}={a*b}',end=' ')
    print('\n')

输出为

1=12=2 2×2=43=3 2×3=6 3×3=94=4 2×4=8 3×4=12 4×4=165=5 2×5=10 3×5=15 4×5=20 5×5=256=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=367=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=498=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=649=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