Day022|九九乘法表详解

2021-03-17  本文已影响0人  龙渊的宝藏

今天是Andy学Python的第22天哦! 

大家好,我是Andy。

今天学习了制作九九乘法表。

01.九九乘法表长什么样

02.解题步骤

2.1输出九行数字

应该用循环,已知循环次数,选用for … in  range()。

for line in range(10):

print(line)

结果发现输出包含0。range(10)用错了,这是将0,1,2,3,4,5,6,7,8,9依次赋值给line。如果不包括0,应该是for line in range(1,10)。

for line in range(1,10):

    print(line)

2.2行数X列数=乘积

算式打印行数较多,疏忽了Python中print(,end="")函数默认换行打印,如果想要不换行输出,应在end=""的引号内添加任何符号,如空格、逗号等等。

#行为line,列为row

for line in range(1,10):

    for row in range(1,10):

        print(line, "*", row, "=", row * line, end=" ")        

2.3列数<=行数

虽然实现了不换行输出,但并不是我们想要的结果,整个九九乘法表是一个直角三角形,列数<=行数。

#行为line,列为row

for line in range(1,10):

    for row in range(1,10):

        while row <= line:

            print(line, "*", row, "=", row * line, end=" ") 

出现死循环。删去重写。

想实现列数<=行数,在row遍历时就可定义好。比如line = 1,row只能取1,即row in range(1,line+1)。验证line=5,row取(1,5+1)左闭右开,或者顾头不顾尾,即row取1,2,3,4,5,符合要求。

#行为line,列为row

for line in range(1,10):

    for row in range(1, line + 1):

        print(line,"*",row,"=",line * row,end = " ")

2.4换行

虽然算式实现了,但未实现行数+1即换行输出。

在row即将+1时增加换行输出。

代码如下:

#行为line,列为row

for line in range(1,10):

    for row in range(1, line + 1):

        print(line,"*",row,"=",line * row,end = " ")

        print("\n")

虽然换行了,但不是自己想要的结果。换行应该是line+1,而不是row+1。所以换行应该在for line in range(1,10)的子一级,也就是和for row in range(1, line + 1)同级,缩进相同。

代码如下:

#行为line,列为row

for line in range(1,10):

    for row in range(1, line + 1):

        print(line,"*",row,"=",line * row,end = " ")

print("\n")

成功了。

2.5优化

进一步优化行列算式对齐,将print()不换行输出的空格从1个增加到2个。

#行为line,列为row

for line in range(1,10):

    for row in range(1, line + 1):

        print(line,"*",row,"=",line * row,end = "  ")

print("\n")

算式没有对齐。应该是输出占位符设置的问题。

查阅占位符设置,将乘积设置为2位整数。

最终代码如下:

#行为line,列为row

for line in range(1,10):

    for row in range(1,line+1):

        print('%d*%d=%2ld '%(line,row,line*row),end=' ')

print("\n")

Copyright © 2021 Andy学Python

转载事宜请留言 | 获得授权后方可转载

本平台所使用的电子版教材、视频属相关权利人所有。因客观原因部分作品若存在不当使用的情况,请相关权利人随时与我们联系,以协商授权事宜。

End

不会Python,将成为人工智能时代的新“文盲”!

欢迎加入零基础自学Python计划,未来100天,Andy会把自学Python学习笔记持续输出公众号、视频号,不定期更新,邀您观战、加油、评论,亦或围观Andy被打脸。

人到中年,你一定要努力,但千万别着急。

我是Andy,一个终身学习者。

欢迎关注公众号与视频号:Andy学Python。

上一篇下一篇

猜你喜欢

热点阅读