一起玩玩Python内置函数(range)来打印数学乘法表

1、Python内置函数range的使用

range函数的作用可以理解取一个范围如下:

>>>range(5) # :取一个在5的范围
>range(0, 5) # 那么在这里取的范围就是0-5 0 1 2 3 4 

同时我们可以在range(填写范围)

>>>range(2, 6)
>range(2, 6) # 在这里取值范围:2 3 4 5 

到目前为止range函数是来取一个范围的 但是我们还看不到值可以使用for循环来取值如下:

#!/usr/bin/env python
# Author: ywyankerp
for i in range(2, 6):
    print(i)

#输出结果为:
2
3
4
5

解释:

for i in range(2, 6):
#for开始循环 i我们可以理解为一个变量 in(在) range(2, 6)取2-6的范围
#把range(2, 6)的取值范围结果赋值给变量i 直到循环结束,最后输出i变量的值

但是我们发现它输出的结果是以列的方式输出的,那么我们可以使用end指令来解决这个问题

#!/usr/bin/env python
# Author: ywyankerp
for i in range(2, 6):
    print(i, end=" ")
2 3 4 5 # 输出结果

end解释:

print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

在这里end后面有一个’\n’这个通常代表就是换行的意思 那么我们得知end它默认就是换行的 所以我们第一次输出就是一列的方式输出 在第二次我们定义了end=” 空格 “那么它的输出结果就是 2 3 4 5

例如2:

#!/usr/bin/env python
# Author: ywyankerp
for i in range(2, 10):
    print(i, end=" ")
2 3 4 5 6 7 8 9 # 输出结果

2、使用range函数+for循环打印数学乘法表格

以下是数学乘法表
这里写图片描述

我们可以看到表格是以行 列加数字的运算形成的 接下来我们先打印1-9一行数字如下:

#!/usr/bin/env python
for i in range(10): # 在这里我们使用range函数来取范围这里就是0-9
    print(i, end=" ") # end上面提过了 定义空格不要让他换行
0 1 2 3 4 5 6 7 8 9 # 输出的结果

接下来我们在使用一个for循环如下:

#!/usr/bin/env python
for i in range(10):
    for j in range(1, 10): # 取值范围:1-9 那么我们可以理解为循环10次 取值范围为:1-10  
        print(j, end=" ")
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6
7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

加print()参数可以换行如下:

#!/usr/bin/env python
for i in range(10):
    for j in range(1, 10):
        print(j, end=" ")
    print()
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9

到这里确实是打印出来了,像那么一点样子了 但是还不是够乘法口诀表是斜着的我们现在的这个是正方形如下图我们应该这样斜着走应该才是对的
这里写图片描述
实现如下:

#!/usr/bin/env python
for i in range(10): 
    for j in range(1, i+1):
        print(j, end=" ")
    print()

简单抽象分析:

for i in range(10): # 循环开始,取一个范围为0-9 开始循环第一次就是取0
    for j in range(1, i+1): # 这个for循环是包含在第一个for循环中的,所以这里的范围是1, i+1 就是10+1
        print(j, end=" ") # 输出j这个变量 并空格
    print() # 让输出结果换行。

for i in 循环第一次 0--9 循环的第一次就是0
    for j in 循环取值1-- 10+1 那么第一次就是 1,1 第二次循环就是 1,2 以此类推--1,3  1,4  1,5  1,6  1,7---.....1,10
1,2  ---- 1
1,3  ---- 1 2
1,4  ---- 1 2 3
1,5  ---- 1 2 3 4
1,6  ---- 1 2 3 4 5
1,7  ---- 1 2 3 4 5 6
1,8  ---- 1 2 3 4 5 6 7 
1,9  ---- 1 2 3 4 5 6 7 8
1,10 ---- 1 2 3 4 5 6 7 8 9
    print(j)
输出结果就是
1 第一次循环的结果
1 2 第二次循环的结果
1 2 3 第三次循环的结果
1 2 3 4 第四次循环的结果
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9

到目前为止输出的还是有点样子的 那么继续 我们接下来需要相乘了

#!/usr/bin/env python
for i in range(10):
    for j in range(1, i+1):
        print(f"{j}*{i}={str(j*i):2}", end=" ")
    print()
for i in range(10):
    for j in range(1, i+1): 
        print(f"{j}*{i}={str(j*i):2}", end=" ") # 这里使用的f-string来调用的变量 以字符串的类型输出 并向左空行两位
    print()

输出结果如下:

1*1=1
1*2=2  2*2=4
1*3=3  2*3=6  3*3=9
1*4=4  2*4=8  3*4=12 4*4=16
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_39591494/article/details/80718911