1.for循环
1.1语法结构:
语法结构:
for 变量 in 容器:
#缩进 循环体
1.2适用场景
for循环大多用来遍历某个容器,这里的容器指的是可迭代对象。
例如:
>>> for i in range(10):
... print(i)
...
0
1
2
3
4
5
6
7
8
9
或者是遍历某个容器
例如:
>>> a = [1,2,3,4,5,6,7]
>>> for i in a:
... print(i)
...
1
2
3
4
5
6
7
2.while循环
2.1语法结构
while 条件:
#缩进 执行的循环体
2.2适用场景
已知循环条件,不知道循环的具体次数,或者无限循环时将循环条件改为True或者1
例如 while True:
循环体
break
3.简单应用
3.1. 求 0~100以内所有偶数的和
sum = 0
for i in range(101):
#判断是不是偶数
if i % 2 == 0:
sum += i
print("所有偶数的和",sum)
3.2. 求 0~100以内所有奇数的和
sum = 0
for i in range(100):
#判断是不是偶数
if i % 2 == 1:
sum += i
print("所有奇数的和",sum)
3.3. 一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是多少(while循环)
index = 0
while True:
if (index + 3) % 5 == 0 and (index - 3) % 6 == 0:
print(index)
break
index += 1
3.4. 在400~500之间求一个数,它被2除余1,被5除余3,被8除余1,求这个数
for i in range(400,501):
if i % 2 == 1 and i % 5 == 3 and i % 8 == 1:
print(i)
break
3.5. 打印三角形(等腰三角形)
layer = int(input("请输入你要打印的层数:"))
#每一行
for i in range(1,layer+1):
#计算的是每一行的空格数
space_num = layer - i
for j in range(0,space_num):
print(" ",end="")
#计算每一个的*
start_num = 2 * i - 1
for j in range(0,start_num):
print("*",end="")
print()
4.总结
这两个循环搭配其他判断条件基本可以实现各种简单的代码逻辑,如果再加入一些算法内容,就可以基本实现各种易难需求。
对于我来说,我把循环理解成数学中的一种坐标,单个循环可能只是一条线,两个循环嵌套就像是一个XY轴坐标图,三重循环就是一个三维坐标,我想这种形象化的空间思维可以让许多问题都有更加具体的思考方案。