当前位置:首页>python>5种方法画99口诀表,Python新手好练习

5种方法画99口诀表,Python新手好练习

  • 2026-10-11 08:08:56
5种方法画99口诀表,Python新手好练习

石岛编程周老师:
实战是掌握编程最快的方法,没有之一
放下书本、放下理论,
马上动手做起来。

今天看到一个乘法口诀表,就想着用Python试试,
结果4行代码就搞定了,因为太简单了,本来也没准备写,
又想能不能融入一些其他的Python知识点, 获取对于Python新手来说是一个不错的小练习,
如果你觉得有用,点个赞让我知道!

一 Python乘法口诀表 效果

我看到的是这个图,就按这个图做吧。

二 Python乘法口诀表 思路

1.先输出第1列,1乘以1到9的部分

2.再输出9列,相当于所有的表达式,一共是81个

3.将表达式输出为9行9列

4.将表达式优化成图片的样子

5.用其他的方法搞定这个99乘法口诀表

三 Python乘法口诀表 实现

注意,我下面例子中的公式表达式与图片中不一样,
你尝试自己改一下

1 输出第1列

for i in range(1,10):
   print("1x%d=%d"%(i,1*i)

一共两行,循环就是从1开始,到10结束,不包括10;
至于格式化的输出,先用旧版的%来做,

%d表示此外代入一个整数
引号内的内容表示输出的样子
引号外的括号中,i表示将i代入第1个%d,
1*i是计算的式子,写成这样,后面要用,让电脑算去

2 输出9行9列

1)先输出所有的式子

输出9行9列,只需要再写一个循环,1个循环表示行,1个循环表示列

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

输出效果:

2)修改成1行

这样可以输出所有的表达式,但都写在一列了,
需要写成1行9个式子的样子,
也就是说1行的9个式子之间用空格隔开,
修改end的参数即可,

下面是print的默认参数,表示默认以"\n",即换行符来结束的
print("%dx%d=%d"%(i,j,i*j), end="\n")
我们改成,用空格来结束输出
print("%dx%d=%d"%(i,j,i*j), end=" ")
输出效果:

3) 修改成9行

想要变成9行,只需要每一行,加1个换行符,
print()
那自然是在第1行输出的代码后增加,也就是第2个循环后增加

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

3 简少表达式

1)找规律

先不要向后看,看这个图能总结出什么规律?

规律:

每行的式子数量,和当前行的行数是相同的
即,第1行1个式子,第2行2个式子

4.完成优化

那就反向找一下,哪一行代码可以控制输出式子的数量,
答案是第2个for循环,将循环的结束数字9,改为当前行即可

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

四 其他方法和知识点

下面采用了Python的格式化输出、列表推导式等方法,对原来的代码进行了修改。
分别使用了自定义函数的方法,方便调用。

1 格式化输出

上面的输出,可以看出来,积为一位数或两位数,会导致式子不对齐,不太好看
下面将分别使用旧版和新版的格式化输出一下
只改print输出的部分

#旧版方法
print("%dx%d=%2d"%(i,j,i*j), end=" ")
#新版方法
print(f"{i}x{j}={j*i:2d}", end=" ")

%2d、{:2d}分别为旧版、新版保留两位整数的格式方法 

2 格式化输出2

上面的效果,我觉得没有那么好,就再用个条件语句修改一下

for i in range(1,10):
for j in range(1,i+1):
        k = i*j
if k>9:
            s = " "
else:
            s = "  "
        print("%dx%d=%d"%(i,j,i*j), end=s)
    print()

好看多了吧

3 使用列表的方法

这里还可以使用列表的方法,纯属”爱学习“,

for i in range(1,10):
    list1 = []
for j in range(1,i+1): 
        s = "%dx%d=%d"%(i,j,i*j)
        list1.append(s)
    print( "  ".join(list1) )

join表示用前面的空格将列表中所有的元素连接

4 使用列表推导式

第三种方法,可以更简化,直接使用列表推导式两行输出。
看似增加了难度,但这种方法是以后彻底掌握Python常用的写法,
多看看,多学学,没有错,自己多理解一下

#这四行其实是一行
list1 = [
" ".join(f"{i}x{j}={i*j:2d}"for j in range(1, i+1))
for i in range(1, 10)
 ]
print("\n".join(list1))

5 其他

本来还准备用C++再写一些,但时间不够了,再说吧

END

✨ 今日份小成就达成!

如果你觉得这个项目有用,欢迎:
️⃣ 点赞/在看——让更多同学看到
️⃣ 留言告诉我——你还想做什么作品?
️⃣ 关注公众号,更新各种实战项目,不迷路!

✨ 关注:石岛极客编程实战

带你用实战项目快速掌握编程,
分享Python、C++、ESP32、掌控板、AI编程等软硬件编程实战项目,
欢迎关注!

最新文章

随机文章