在所有的循环中应当避免死循环的出现。死循环:条件始终为真的循环称为死循环在循环语句中,表达式永远为真,致循环持续执行程序无法终止。在开发的时候,死循环带来的麻烦是最直观最大的。
一. while循环
while循环的框架:
设置初始条件
while(判断是否达到了条件,达到了一直执行,没有达到就退出循环):
条件满足的时候执行的条件
改变判断条件(一般是计数器加一减一的操作)
冒号不要省略
while循环计算 1+2+...+100
# 利用循环计算 1+2+...+20 的和
num = 1
sum = 0while num <= 100:sum += numnum += 1print(sum)
"""
运行结果:
5050
"""
while 循环计算阶乘的和
# 利用while循环 计算阶乘的和
num = 1
num0 = 1
num1 = int(input("请输入:"))
sum = 1
result = 0while num <= num1:while num0 <= num:sum *= num0num0 += 1num0 = 1num += 1result += sumsum = 1
print("从1到 %d 阶乘的和为: %d" % (num-1,result))
"""
运行结果:
请输入:10
从1到 10 阶乘的和为: 4037913"""
二 . for...in...循环
for ... in ...循环的框架
for 自定义变量 in range(n):
下级代码
冒号不要省略
range(n):代表执行了n次,range是一个数列
for...in... 从1输出到100.
# 利用for...in...循环输出从1至100# 自定义变量默认从 0 开始
for num in range(101):print(num)# 自定义变量可以通过设置来控制入点和出点
for num in range(10,101):print(num)
for...in... 计算阶乘
# 利用for...in...循环 计算阶乘num = int(input("请输入:"))
sum = 1for i in range(num):sum *= i+1
print(sum)
"""
运行结果:请输入:5
120
"""
for...in... 计算阶乘的和
# 利用for...in...循环 计算阶乘
# 注意 range(n) ,range 中的 n 是取不到,只能到 n-1num = int(input("请输入:"))
sum = 1
result = 0for i in range(num):for j in range(i+1):sum *= j+1result += sumsum = 1print("从1到 %d 阶乘的和为: %d" % (num,result))
"""
运行结果:
请输入:10
从1到 10 阶乘的和为: 4037913"""
三. 循环中的 break
作用:退出循环。
在循环过程中,如果 某一个条件满足后,不再希望 循环继续执行可以使用 break 退出循环。
注意:只能跳出距离最近的for或者while循环
break 跳出 while 循环
# break 跳出 while 循环
while True:print("*********循环中**********")str = input("请输入1024:")if str == "1024":break"""
运行结果:
*********循环中**********
请输入1024:1
*********循环中**********
请输入1024:str
*********循环中**********
请输入1024:1024"""
break 跳出 for...in... 循环
# break 跳出 for...in...循环
num = int(input("请输入[-10,10]的整数:"))for i in range(-10,10):if i < num:print("i进行加一,i现在是:%d" % i)i += 1elif i > num:print("i进行减一,i现在是:%d" % i)i -= 1else:print("i等于num")break"""
运行结果:
请输入[-10,10]的整数:5
i进行加一,i现在是:-10
i进行加一,i现在是:-9
i进行加一,i现在是:-8
i进行加一,i现在是:-7
i进行加一,i现在是:-6
i进行加一,i现在是:-5
i进行加一,i现在是:-4
i进行加一,i现在是:-3
i进行加一,i现在是:-2
i进行加一,i现在是:-1
i进行加一,i现在是:0
i进行加一,i现在是:1
i进行加一,i现在是:2
i进行加一,i现在是:3
i进行加一,i现在是:4
i等于num"""
判断是否为质数
质数是除了1和本身以外除以任何数余数都为0的正整数,1就不是质数也不是合数。
for...in...方法
# 判断是否是质数
num = int(input("输入正整数:"))
for i in range(1,num+1):if num == 1:print("1既不是质数也不是合数")breakelse:if num % i == 0 and i != 1 and i != num:print("%d 是合数" % num)breakelse:if i == num:print("%d 是质数" % num)break"""
运行结果:
输入正整数:1
1既不是质数也不是合数输入正整数:4
4 是合数输入正整数:7
7 是质数
"""
while 方法
flag 标志属性,是我自定义的。
# 判断是否是质数
num = int(input("输入正整数:"))
i = 2
flag = 0
if num != 1:while i < num:if num % i == 0:print("%d 是合数" % num)flag = 1breaki += 1
else:print("1既不是质数也不是合数")flag = 1if flag == 0:print("%d 是质数" % num)"""
运行结果:
输入正整数:1
1既不是质数也不是合数输入正整数:4
4 是合数输入正整数:7
7 是质数
"""
四. 循环中的 continue
作用:跳过本次循环后面的剩余语句,然后继续下一次循环
注意:只能跳过距离最近的for或者while循环
# 禁止输出数字 5
for i in range(1,10):if i == 5:continueelse:print(i,end=" ")j = 1
while j < 10:if j == 5:j += 1continueelse:print(j,end=" ")j += 1
"""
运行结果:
1 2 3 4 6 7 8 9 1 2 3 4 6 7 8 9
"""
好好吃饭
好好睡觉