打印99乘法表
相信99乘法表大家都很熟悉,下面介绍如何使用Python来打印99乘法表。为了实现这个需求,需要掌握两个知识点:
- print()函数的使用
- for循环语句的使用
print函数
主要是掌握两个参数的使用:sep(连接符)和end(末尾换行符)
- 连接符默认是:空格
- 末尾符号默认是:换行
默认情况
代码语言:javascript复制print("hello Peter")
代码语言:javascript复制hello Peter
代码语言:javascript复制print("hello","Peter")
代码语言:javascript复制hello Peter
代码语言:javascript复制print("hello Peter")
print("***********")
print("hello python")
代码语言:javascript复制hello Peter
***********
hello python
连接符sep
从下面的例子中看到默认的连接符是空格
代码语言:javascript复制print("hello","Peter")
代码语言:javascript复制hello Peter
我们尝试使用不同的连接符来打印数据
代码语言:javascript复制print("hello","Peter",sep=" ") # 使用
代码语言:javascript复制hello Peter
代码语言:javascript复制print("hello","Peter",sep="-") # 使用-
代码语言:javascript复制hello-Peter
代码语言:javascript复制print("hello","Peter",sep="***") # 使用***
代码语言:javascript复制hello***Peter
末尾参数end
末尾使用的参数
代码语言:javascript复制print("hello","Peter") # 默认end情况
print("**************")
print("!!!!!!!!!!!!")
代码语言:javascript复制hello Peter
**************
!!!!!!!!!!!!
代码语言:javascript复制print("hello","Peter",end="n") # 默认就是换行
print("****************")
print("!!!!!!!!!!!!")
代码语言:javascript复制hello Peter
****************
!!!!!!!!!!!!
通过上面的例子,我们观察到:每次调用print函数都会自动换行。
因为这就是print默认的情况,末尾自动换行。通过使用end来进行改变
代码语言:javascript复制print("hello","Peter",end="t") # 制表符就是表格空格
print("****************", end="t")
print("!!!!!!!!!!!!")
代码语言:javascript复制hello Peter **************** !!!!!!!!!!!!
代码语言:javascript复制print("hello","Peter",end="|") # 指定不同的默认符号
print("****************", end=" ")
print("!!!!!!!!!!!!")
代码语言:javascript复制hello Peter|**************** !!!!!!!!!!!!
for语句
代码语言:javascript复制# 1、打印列表
list1 = [1,2,3,4,5] # 定义列表
for i in list1:
print(i) # 直接打印
代码语言:javascript复制1
2
3
4
5
代码语言:javascript复制# 2、打印字典
dic = {"name":"小王","sex":"男","age":20}
for i in dic:
print(i)
代码语言:javascript复制name
sex
age
代码语言:javascript复制# 遍历字典键值对
for i in dic.items():
print(i)
代码语言:javascript复制('name', '小王')
('sex', '男')
('age', 20)
代码语言:javascript复制# 3、多层for循环
for i in [4,5,6]:
for j in [1,2,3]:
print(i*j) # 实现任意两个数的乘法
代码语言:javascript复制4
8
12
5
10
15
6
12
18
种方式
方式1:for-for
代码语言:javascript复制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") # 末尾自动换行再加上一个空行
代码语言:javascript复制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
代码语言:javascript复制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")
代码语言:javascript复制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
代码语言:javascript复制# 另一种写法:改变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")
代码语言:javascript复制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
代码语言:javascript复制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")
代码语言:javascript复制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
代码语言:javascript复制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')
代码语言:javascript复制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:使用递归函数
递归函数指的是在某个函数的内部调用这个函数本身
代码语言:javascript复制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)
代码语言:javascript复制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循环
代码语言:javascript复制# 两层for循环
# 内层:使用join的空格连接(列-j)
# 外层:使用join的换行连接(行-i)
print('nn'.join([' '.join(["{}x{}={}".format(j, i, i*j) for j in range(1, i 1)]) for i in range(1, 10)]))
代码语言:javascript复制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
代码语言:javascript复制# 使用f-string
print('nn'.join([' '.join([f"{j}x{i}={j*i}" for j in range(1, i 1)]) for i in range(1, 10)]))
代码语言:javascript复制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种方式,你学会了吗?学废了吗?