Python循环并不难,认真理解以下知识点,你也可以学的很好。(此文章适合初学者,也适合复习)
先简单回顾一下Python循环:
Python里的循环有两种一个是while语句循环,一个是for语句循环。
while语法格式:
#缩进 ---- 强缩进语言
#执行循环体
for循环是用来遍历容器(迭代可迭代的对象)
比如说:打印1~100
引入了一个函数:range()
range ---- 范围,区间
range(参数) ------- 表示的是从0开始到参数结束,不包含这个参数的,前闭后开的区间
其实Python里的while循环和for循环本身没有什么难度,不难理解,但是在后续的学习中会有循环的嵌套,所以才会感觉难,但只要把基础的知识学习好,自然也就水到渠成了。
下面举个while循环的简单的小例子:(在敲代码前一定要注意,Python里的循环是强缩进性语言,一定要注意空格和TAB不能混用,也不能多敲一个空格,总之注意上下代码的对齐。)
1.1
打印1~100:
n = 1
while n <= 100:
print(n)
n += 1
1. 2
计算100以内所有奇数的和
sum = 0
n = 99
while n > 0:
sum += n
n -= 2
print(sum)
1.3
*
**
***
****
layer = int(input("请输入你要打印的层数:"))
index = 1
while index <= layer: #layer = 3
#打印每层的*
j = 1
while j <= index: #index = 1 2
print("*",end="")
j += 1
print() #换行
index += 1
1.4
打印九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print("%s * %s = %s "%(j,i,(i*j)),end="")
j += 1
print() #换行
i += 1
也可以进行如下的优化:
i = 1
while i <= 9:
j = 1
while j <= i:
res = i * j
if res < 10:
print("%s * %s = %s "%(j,i,(i*j)),end="")
else:
print("%s * %s = %s "%(j,i,(i*j)),end="")
j += 1
print() #换行
i += 1
1. 5
判断一个数是否为质数(素数)
质数:除了1
和它本身之外不会被其他自然数整除的数
最小质数的是2
2,
3
,
5
,
7
,
11
,
13
,
17.........
num = int(input("请输入一个数:"))
if num <=1:
print("这不是质数")
elif num == 2:
print("这是质数")
else:
i = 2
while i < num:
if num % i == 0:
print("这不是质数")
break
i += 1
else:
print("这是质数")
for语句循环
1.1
打印1-100的整数:
for i in range(10):
print(i)
...
0
1
2
3
4
5
6
7
8
9
range(
参数
1,
参数
2)----
表示的是从参数
1
到参数
2
之间,不包含参数
2
,前闭后开的区间
for i in range(10,20):
print(i)
//... (运行后结果)
10
11
12
13
14
15
16
17
18
19
range(
参数
1
,参数
2
,
step)------
表示的是从参数
1
到参数
2
以
step
为单位之间的数,不包含参数
2
,前闭
后开的区间
for i in range(10,20,2):
print(i)
...
10
12
14
16
18
for i in range(20,10,-2):
print(i)
...
20
18
16
14
12
对于循环还有break和continue关键字也非常重要
break关键字在循环体内被执行的话,会直接终结整个循环。
continu关键字在循环体内被执行的话,会跳过本次循环,继续执行下一次循环。
for i in range(101):
# if i == 50:
# break #终止循环
if i == 50:
continue #跳过此次循环,继续执行下一次循环
print(i)
关键字:
pass ----
可以应用到任何地方,不清楚代码怎么写的情况下,为了不影响代码的执行可以使用
pass
关键字让代码继续执行
一个完整的循环的语法结构:
for 变量 in range(范围):
#缩进
#循环体
【else:
循环正常结束后执行的代码
】
【】-----可选的部分,可写可不写
for i in range(101):
# if i == 50:
# break #终止循环
if i == 50:
continue #跳过此次循环,继续执行下一次循环
print(i)
else:
print("循环正常结束的情况下会执行我")
print("循环结束了!!!")
最后弄个循环的基础题给大家玩一玩:
#打印
# *
# ***
# *****
# *******
# *****
# ***
# *
while layer % 2 == 0:
layer = int(input("请输入正确的要打印的行数,注意是奇数行:"))
#上半部分
for i in range(1,layer // 2 + 2):
#计算空格的个数
spce_num = layer - i
for j in range(0,spce_num):
print(" ",end="")
#计算*个数
star_num = 2 * i - 1
for j in range(0,star_num):
print("*",end="")
print("")
#下半部分
for i in range(layer // 2 ,0,-1):# (3,0,-1)
#计算空格的个数
spce_num = layer - i
for j in range(0,spce_num):
print(" ",end="")
#计算*个数
star_num = 2 * i - 1
for j in range(0,star_num):
print("*",end="")
print("")