查看原文
其他

直到今天,我终于学会99乘法表啦~

尤而小屋 尤而小屋 2022-05-28

公众号:尤而小屋
作者:Peter
编辑:Peter

大家好,我是Peter~

相信99乘法表大家都很熟悉,下面介绍如何使用Python来打印99乘法表。为了实现这个需求,前提需要掌握两个知识点:

  • print()函数的使用
  • for循环语句的使用

一、print函数

主要是掌握两个参数的使用:sep(连接符)和end(末尾换行符)

  • 连接符默认是:空格
  • 末尾符号默认是:换行

1.1默认情况

print("hello Peter")
hello Peter
print("hello","Peter")
hello Peter
print("hello Peter")
print("***********")
print("hello python")
hello Peter
***********
hello python

1.2连接符sep

从下面的例子中看到默认的连接符是空格

print("hello","Peter")
hello Peter

我们尝试使用不同的连接符来打印数据

print("hello","Peter",sep="+")  # 使用+
hello+Peter
print("hello","Peter",sep="-")  # 使用-
hello-Peter
print("hello","Peter",sep="***")  # 使用***
hello***Peter

1.3末尾参数end

末尾使用的参数

print("hello","Peter")  # 默认end情况
print("**************")
print("!!!!!!!!!!!!")
hello Peter
**************
!!!!!!!!!!!!
print("hello","Peter",end="\n")  # 默认就是换行
print("****************")
print("!!!!!!!!!!!!")
hello Peter
****************
!!!!!!!!!!!!

通过上面的例子,我们观察到:每次调用print函数都会自动换行。

因为这就是print默认的情况,末尾自动换行。通过使用end来进行改变

print("hello","Peter",end="\t")   # 制表符就是表格空格
print("****************", end="\t")
print("!!!!!!!!!!!!")
hello Peter **************** !!!!!!!!!!!!
print("hello","Peter",end="|")   # 指定不同的默认符号
print("****************", end="+")
print("!!!!!!!!!!!!")
hello Peter|****************+!!!!!!!!!!!!

二、for语句

# 1、打印列表
list1 = [1,2,3,4,5]  # 定义列表

for i in list1:
    print(i)  # 直接打印
1
2
3
4
5
# 2、打印字典
dic = {"name":"小王","sex":"男","age":20}

for i in dic:
    print(i)
name
sex
age
# 遍历字典键值对

for i in dic.items():  
    print(i)
('name', '小王')
('sex', '男')
('age', 20)
# 3、多层for循环

for i in [4,5,6]:
    for j in [1,2,3]:
        print(i*j)  # 实现任意两个数的乘法
4
8
12
5
10
15
6
12
18

三、6种方式

方式1:for-for

for i in range(110):
    for j in range(1, i+1):  # 为了有例如:3*3、4*4的情况,必须保证j能够取到i值,所以i+1;range函数本身是不包含尾部数据
        print(f'{j}x{i}={i*j}\t', end="")  # end默认是换行;需要改成空格
    print("\n")  # 末尾自动换行再加上一个空行
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:for-while

for i in range(110):       # 外层循环范围
    j = 1      # 内层循环初始值
    while j <= i:      # 内层循环条件:从1开始循环
        print("{}x{}={}".format(i,j,(i*j)), end=' ')  # 输出格式
        j += 1  # j每循环一次加1,进入下次,直到j<=i的条件不满足,再进入下个i的循环中
    print("\n")
1x1=1

2x1=2 2x2=4

3x1=3 3x2=6 3x3=9

4x1=4 4x2=8 4x3=12 4x4=16

5x1=5 5x2=10 5x3=15 5x4=20 5x5=25

6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36

7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49

8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64

9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
# 另一种写法:改变j的初始值

for i in range(110):       
    j = 0  # j初始值   
    while j < i:    # 不能带等号;下面的循环中j已经自加1,如果带上等号:1<=1,那么将会出现 1*2=2,2*3=6的情况
        j += 1 # j的初始值为0,为了保证结果中出现的第一个是1,j先自加1
        print("{}x{}={}".format(i,j,(i*j)), end=' ')         
    print("\n")
1x1=1

2x1=2 2x2=4

3x1=3 3x2=6 3x3=9

4x1=4 4x2=8 4x3=12 4x4=16

5x1=5 5x2=10 5x3=15 5x4=20 5x5=25

6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36

7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49

8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64

9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

方式3:while-for

i = 1  # 给定一个初始值

while i <= 9:  # 循环的条件
    for j in range(1, i+1):  # range()函数左闭右开;保证取到i值
        print(f'{i}x{j}={i*j}', end=' ')
    i += 1  # 循环完一次自动加1,变成2,进入下次循环,直到i=9到达最后一次循环。当i+1变成10,结束循环
    print("\n")
1x1=1

2x1=2 2x2=4

3x1=3 3x2=6 3x3=9

4x1=4 4x2=8 4x3=12 4x4=16

5x1=5 5x2=10 5x3=15 5x4=20 5x5=25

6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36

7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49

8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64

9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

方式4:while-while

i = 1  # i的初始值

while i <= 9:  # 循环终止条件
    j = 1  # j的初始值
    while j <= i:    # j的大小由i来控制
        print(f'{i}x{j}={i*j}', end='\t')
        j += 1   # j每循环一次都+1,直到j<=i不再满足,跳出这个while循环 
    i += 1  # 跳出上面的while循环后i+1,只要i<9就换行进入下一轮的循环;否则结束整个循环
    print('\n')
1x1=1

2x1=2 2x2=4

3x1=3 3x2=6 3x3=9

4x1=4 4x2=8 4x3=12 4x4=16

5x1=5 5x2=10 5x3=15 5x4=20 5x5=25

6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36

7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49

8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64

9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

方式5:使用递归函数

递归函数指的是在某个函数的内部调用这个函数本身

def nine_nine(i):
    if i < 10:
        for j in range(1,i+1):
            print("{}x{}={}".format(i,j,i*j), end=" ")
        print("\n")
        nine_nine(i+1)  # 调用这个函数本身
        
nine_nine(1)
1x1=1

2x1=2 2x2=4

3x1=3 3x2=6 3x3=9

4x1=4 4x2=8 4x3=12 4x4=16

5x1=5 5x2=10 5x3=15 5x4=20 5x5=25

6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36

7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49

8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64

9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

方式6:列表推导式

列表推导式主要是将两个for循环放在一起的。多用于多层for循环

# 两层for循环
# 内层:使用join的空格连接(列-j)
# 外层:使用join的换行连接(行-i)

print('\n\n'.join([' '.join(["{}x{}={}".format(j, i, i*j) for j in range(1, i+1)]) for i in range(110)]))
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
# 使用f-string

print('\n\n'.join([' '.join([f"{j}x{i}={j*i}" for j in range(1, i+1)]) for i in range(110)]))
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

看完上面介绍的6种方式,你学会99乘法表了吗?


推荐阅读


源码开放:基于Pyecharts可视化分析苏州旅游攻略

如何学习Python数据分析:Peter帮你整理了一份资料!

电商用户复购数据实战:图解Pandas的移动函数shift

14种方式,34个案例:对比SQL,学习Pandas操作

Python入门:55个案例讲透列表的索引和切片!

尤而小屋,一个温馨的小屋。小屋主人,一手代码谋求生存,一手掌勺享受生活,欢迎你的光临

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存