Python养成记

7、Python编程示例:乘法口诀表

2022-03-21  本文已影响0人  魔方宫殿
Life is short, you need Python!

上集回顾:

  1. 复习while循环:当条件成立时,循环执行代码块
  2. 循环中断:break
  3. 循环跳过:continue
  4. 循环中else子句

学以致用,在实践中学习,这次让小P来输出一下乘法口诀表。先来看一下乘法口诀表长啥样:


乘法口诀表

一共9行,每行输出列数和行号一样,正好是循环大显身手的地方。动手写代码之前,先画个简单的流程图:


流程图

从流程图上可以看出来,这就是一个简单的while循环。关键是其他部分都可以直接改成代码就行了,但是“输出第i行”好像没有对应的代码。那能不能先把会写的写完,不会写的先放个占位符,等下再去想呢?很多时候编程就是这样,一个大的功能可能一下子没有头绪,那就先拆分成小的功能点,每个功能点都完成了,合起来一个大的功能或者模块也就完成了。这时就可以用到函数了,函数可以简单理解为一个代码块,然后给他们起一个名字就是函数名,想执行这个代码块的时候,直接执行函数名就可以了。Python定义数使用关键字def,后跟函数名与括号内的形参列表。函数语句从下一行开始,并且必须缩进。直接定义"输出第i行"的函数为“printLine(i)”,然后实现代码:

# nine_times_table.py

def printLine(lineNumber) :
    print("输出第" + str(lineNumber) + "行")

i = 1
while i <= 9 :
    printLine(i)
    i += 1

保存文件为nine_times_table.py,然后在命令行执行python nine_times_table.py:

$ python nine_times_table.py
输出第1行
输出第2行
输出第3行
输出第4行
输出第5行
输出第6行
输出第7行
输出第8行
输出第9行

OK,第一步搞定了,下面把printLine函数实现了就行了。观察一下第9行,输出1x9、2x9到9x9,正好又是一个1到9的循环,第8行呢是1到8的循环,所以第i行就是1到i的循环。那就在函数里再写一个循环:

def printLine(n) :
    j = 1
    while j <= n :
        print(str(j) + "X" + str(n) + "=" + str(j * n), end = " ")
        j += 1
    print()

重新保存文件,再次执行python nine_times_table.py:

$ python nine_times_table.py
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

搞定!轻松完成!那么既然函数是一个代码块,调用函数名相当于调用代码块,我们把函数名再替换回代码块,应该也是可以的吧:

i = 1
while i <= 9 :
    # printLine(i) # 替换回代码块
    j = 1
    while j <= i :
        print(str(j) + "X" + str(i) + "=" + str(j * i), end = " ")
        j += 1
    print()
    i += 1

正好是循环里面嵌套一个循环,这就是循环嵌套。循环嵌套可以有很多层,但是为了逻辑清晰和代码直观,最好不要超过2层,如果超过2层的话就可以考虑用函数代替。


本集技能总结:

  1. Python函数
  2. while循环嵌套

下集见

上一篇下一篇

猜你喜欢

热点阅读