Fork me on GitHub

python打印99乘法表

打印99乘法表

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

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

print函数

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

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

默认情况

1
print("hello Peter")
hello Peter
1
print("hello","Peter")
hello Peter
1
2
3
print("hello Peter")
print("***********")
print("hello python")
hello Peter
***********
hello python

连接符sep

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

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

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

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

末尾参数end

末尾使用的参数

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

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

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

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

for语句

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

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

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

for i in dic.items():
print(i)
('name', '小王')
('sex', '男')
('age', 20)
1
2
3
4
5
# 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

种方式

方式1:for-for

1
2
3
4
for i in range(1, 10):
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

1
2
3
4
5
6
for i in range(1, 10):       # 外层循环范围
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
1
2
3
4
5
6
7
8
# 另一种写法:改变j的初始值

for i in range(1, 10):
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

1
2
3
4
5
6
7
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

1
2
3
4
5
6
7
8
9
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:使用递归函数

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

1
2
3
4
5
6
7
8
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循环

1
2
3
4
5
# 两层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(1, 10)]))
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
1
2
3
# 使用f-string

print('\n\n'.join([' '.join([f"{j}x{i}={j*i}" for j in range(1, i+1)]) for i in range(1, 10)]))
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种方式,你学会了吗?学废了吗?

本文标题:python打印99乘法表

发布时间:2021年09月08日 - 14:09

原始链接:http://www.renpeter.cn/2021/09/08/python%E6%89%93%E5%8D%B099%E4%B9%98%E6%B3%95%E8%A1%A8.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Coffee or Tea