主要强调一个周而复始的概念,即满足条件重复执行。 但是有3个注意条件:
根据上面的提示,我们可以去联想一些生活中的案例,分析一下,有什么相同的地方 ?。
通过print("跑了第i 圈")
输出的形式,模拟操场跑圈。
#第一种情况,跑5圈
print("跑了第1圈")
print("跑了第2圈")
print("跑了第3圈")
print("跑了第4圈")
print("跑了第5圈")
# 那么跑 1万圈 怎么实现? 复制+黏贴?
循环三要素:
while
循环的语法格式:
1.初始化值
while 2.判断条件:
执行语句(需要循环地方)
3.控制循环(步长)
结合语法结构, 完成跑操场跑一万圈.
f " {} "
#第二种情况使用while语法格式跑1万圈
#1. 初始化值
i=1
while i<=10000 :#2.判断条件
# 需要循环的语句
print(f"跑了第{i}圈")
#3.步长控制循环
i+=1
无限循环又叫做 “死循环”,就是不会停止
# 1. 什么是无限循环 ?
while True: # 判断条件永远会执行.
print("永远和你在一起")
自己动手,通过 Debug 来查看循环的执行过程? 并给出你的结论.
"""
1. 第一种计算 1到100和
1.1 相当于 1+2+3...+100.
1.2 循环三要素:
初始化值
判断条件
步长(控制循环)
"""
#1. 初始值
i = 1
#3. 累计每一次的和
sum =0
#2.1-100之间的和 判断条件 i<=100
while i<=100:
sum=sum+i #相当于每次循环累计一次.
i+=1 # 步长控制循环
#循环结束输出 sum值
print(sum) #5050
什么是偶数?
%
去解决.# i%2==0 就是偶数
i = 1
oushu = 0
while i <= 100:
# 进行判断偶数
if i % 2 == 0:
oushu = oushu + i
i += 1 # 步长
print(f"偶数之和{oushu}") #2550
第二种方式,通过改变控制条件, 来得到偶数.
# 第二种写法
i = 0 #既然是偶数相加可以从0开始,或者从2开始.
oushu = 0
while i <= 100:
#就不用判断了.
oushu = oushu + i
# 通过步长来控制循环,相当于2
i = i + 2
print(f"偶数之和是{oushu}")#2550
自己动手做: 请算出 1~100奇数之和.
#提示: 什么是奇数?
#通过步长控制?
#TODO coding
妈妈每次都要问小明,“你作业做完了么?”,小明只有作业做完了才能出去玩, 没有做完就继续做,直到做完作业才可以.
'''
1. 标志变量一般在循环中相当于一个开关,
碰到了该变量就会停止,
'''
# 声明一个标志变量
answer = "no"
while answer == "no":
print("作业中.....")
answer = input("妈妈问: 小明作业做完了么?")#相当于步长.
print(f"小明的回答是{answer}")
print("程序结束")
嵌套顶级,核心语法
嵌套循环的语法结构
while 判断条件: #外循环
代码 1
while 判断条件: #内循环
代码2:
步长控制2
步长控制1
要求输出一下格式,循环嵌套的目标结果.
'''
第1圈
做了第1个俯卧撑
做了第2个俯卧撑
做了第3个俯卧撑
第2圈
做了第1个俯卧撑
做了第2个俯卧撑
做了第3个俯卧撑
第3圈
...
'''
根据上述需求,可以得知,一共跑5圈,每次3个俯卧撑
i = 1
while i <= 5:
print(f"跑了第{i}圈")
#准备做俯卧撑
#print("做俯卧撑")
# 内层循环,直接带入.
j = 1
while j <= 3:
print(f"\t做第{j}个俯卧撑") #使用制表符
j += 1 #注意格式缩进
# 外层循环控制
i += 1
一个数可以整除几个数,那么这几个数称为公约数.
"""
输入两个数 12 8
从开始 1 1 公约数
2 2 公约数
3 3
4 4 公约数(最大)
5 5
6 6
.. ..
"""
for循环也是循环,也是表示重复做某些事,只是语法格式同while循环不一样.
语法格式
for 输出变量名 in 要遍历的内容:
循环体
入门案例 变量字符串.
#遍历该字符串
for i in "hello,world":
print(i)
获取1~5的整数
#1.直接输入整数是不行的.需要一个范围,且是字符串形式
# for i in 12345:
# print(i) # TypeError: 'int' object is not iterable
print("-"*20) #华丽的分隔符
#2.需要使用字符串的形式
for i in "12345":
print(i)
range() 函数可创建一个整数列表, 一般用在 for 循环中使用.
range()
使用的三种情况.
# 1. range(8) [0,8)
for i in range(8):
print(i) #根据输出结果自己总结
# 2. range(1,8) [1,8)
for i in range(1,8):
print(i)
# 3. range(0,8,2) [0,8,2) 计数间隔2
for i in range(0,8,2):
print(i)
# 4.扩展知识 range(8,0,-2)
for i in range(8,0,-2):
print(i) # 相当于从反方向输出,即反向遍历
使用 for循环计算 1~100之间的和.
#设置累计求和 sum
sum = 0
# for循环语法 range(1,101)
for i in range(1,101):#需要加到100,[1,101)
sum = sum+i #累计求和
print(f"1~100的值是{sum}")
打印直角三角型
图形如下
*
* *
* * *
* * * *
* * * * *
代码:
"""
第二种方式:采用for循环的方式
分析一波:
for 外层控制输出行数
for 内循环控制输出次数
第一次循环:
for 外层循环第1次循环
for(内层) 输出1次 *
第二次循环:
for 外层循环第2次循环
for(内层) 输出2次 * *
第三次循环:
for 外层循环第3次循环
for(内层) 输出3次 * * *
第四次循环:
for 外层循环第4次循环
for(内层) 输出4次 * * * *
第五次循环
for 外层循环第5次循环
for(内层) 输出5次 * * * * *
"""
for i in range(1,6): # [1,6) 相当于 1,2,3,4,5 次.
#内层循环控制输出次数
for j in range(i):
# 默认输出是"\n",需要该为end=""小细节
print("*",end=" ")
#相当于换行
print("")
要求输入一个n打印出来相应的行数.即输入几就打印几行.
range(start,end,step)
的函数.#.怎么分析代码?
#当n =1 时
n=1
for i in range(n):
for j in range(i):
print("*", end=" ")
print("")
#当n=2时...
n=2
for i in range(n):
for j in range(i):
print("*", end=" ")
print("")
# 当n=3时 ...
n=3
for i in range(n):
for j in range(i):
print("*", end=" ")
print("")
# 最终: 所以得出结论,输入n+1 就是要打印的行数.
n =4
for i in range(1,n+1):
for j in range(i):
print("*", end=" ")
print("")
"""
如何分析:
根据样式发现
外循环第一次循环
内循环一次
外循环 第二次
内循环输出二次
外循环 循环9次
内循环输出9次
"""
# 根据语法格式 先搭建外循环构架
for i in range(1, 10):
for j in range(1, i + 1): # 需要使用i+1 输出第一个
print(f"{j}x{i}={i * j}", end=" ")
print("")
print("*"*20)
思考: 第二种需求,当输入n时 生成 相应的乘法表.
#2,第二种需求,当输入n时 生成 相应的乘法表.
n = 11;
for i in range(1, n+1):
for j in range(1, i + 1): # 需要使用i+1 输出第一个
print(f"{j}x{i}={i * j}", end=" ")
print("")
break 语句用于结束整个循环.
#1.break使用结构,跳出本次循环,并结束程序.
i=1
while i<=10:
print(i) #1 ,2,3
if i==3:
break
print(f"我执行了么?{i}") #后面的语句就不执行了. 1 ,2
i+=1
1
我执行了么?1
2
我执行了么?2
3
continue的作用是结束本次循环.执行下一次循环
# 结束本次循环,执行下一次循环
for i in range(1, 10):
print(i)
if i == 3:
continue
print(f"我执行了么{i}") #相当于跳过了3,执行了后面.
知道有if -else 结构, else 还可以和while一起使用.
# 1. 这叫做等式恒成立结构. 所以 else会是黄色的.
if 5 > 3:
print("if")
else:
print("else")
# 2. pass 占位语句
if 5 > 3:
# 如果不写会报错.
pass # 使用pass占位,不执行任何,空语句
else:
print("else")
# 3. while-else结构
# 如果循环正常结束,循环输出就会执行 else里面
i = 1
while i <= 10:
print(i)
i = i + 1
else:
print("else")
#3.1 如果循环中有break就不会执行.
i = 1
while i <= 10:
print(i)
if i==3:
break
i = i + 1
else:
print("else")