在所有的循环中应当避免死循环的出现。死循环:条件始终为真的循环称为死循环在循环语句中,表达式永远为真,致循环持续执行程序无法终止。在开发的时候,死循环带来的麻烦是最直观最大的。
一. while循环
while循环的框架:
设置初始条件
while(判断是否达到了条件,达到了一直执行,没有达到就退出循环):
条件满足的时候执行的条件
改变判断条件(一般是计数器加一减一的操作)
冒号不要省略
while循环计算 1+2+...+100
# 利用循环计算 1+2+...+20 的和
num = 1
sum = 0
while num <= 100:
sum += num
num += 1
print(sum)
"""
运行结果:
5050
"""
while 循环计算阶乘的和
# 利用while循环 计算阶乘的和
num = 1
num0 = 1
num1 = int(input("请输入:"))
sum = 1
result = 0
while num <= num1:
while num0 <= num:
sum *= num0
num0 += 1
num0 = 1
num += 1
result += sum
sum = 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 = 1
for i in range(num):
sum *= i+1
print(sum)
"""
运行结果:
请输入:5
120
"""
for...in... 计算阶乘的和
# 利用for...in...循环 计算阶乘
# 注意 range(n) ,range 中的 n 是取不到,只能到 n-1
num = int(input("请输入:"))
sum = 1
result = 0
for i in range(num):
for j in range(i+1):
sum *= j+1
result += sum
sum = 1
print("从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 += 1
elif i > num:
print("i进行减一,i现在是:%d" % i)
i -= 1
else:
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既不是质数也不是合数")
break
else:
if num % i == 0 and i != 1 and i != num:
print("%d 是合数" % num)
break
else:
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 = 1
break
i += 1
else:
print("1既不是质数也不是合数")
flag = 1
if flag == 0:
print("%d 是质数" % num)
"""
运行结果:
输入正整数:1
1既不是质数也不是合数
输入正整数:4
4 是合数
输入正整数:7
7 是质数
"""
四. 循环中的 continue
作用:跳过本次循环后面的剩余语句,然后继续下一次循环
注意:只能跳过距离最近的for或者while循环
# 禁止输出数字 5
for i in range(1,10):
if i == 5:
continue
else:
print(i,end=" ")
j = 1
while j < 10:
if j == 5:
j += 1
continue
else:
print(j,end=" ")
j += 1
"""
运行结果:
1 2 3 4 6 7 8 9 1 2 3 4 6 7 8 9
"""
好好吃饭
好好睡觉