1、求和套路
案例:求1+2+3……+100
s=0
for i in range(1,101):
s=s+i
print(s)
#第一步:先定义一个变量保存最后的和,默认是0;
s=0
#第二部:通过for循环将需要求和的所有数全部取出来
For x in range(1,101):
#第三部:在循环体中,获取到一个数据,就向最后求和的变量中加一个
s+=x
#第四步:循环结束后保存最后的变量中数据就是最后要求的结果
print(s)
案例:求一个班所有学生的总分
t=0
scores=[78,34,56,90,78,89,88,60,91]
for i in scores:
t=t+i
print(t)
练习2:求1~100中所有能被3整除但是不能被7整除数的和
s1=0
for i in range(1,101):
if i%3==0:
if i%7!=0:
s1=s1+i
print(s1)
2、统计个数
案列:统计num中偶数的个数
scores=[78,34,56,90,78,89,88,60,91]
#第一步:定义变量保存最后的个数,默认值是0
count=0
#第二部通过循环获取所有的统计对象
for i in scores:
#第三步:得到一个统计对象,个数就加1
If x % 2==0:
count += 1
print(count)
3、while 循环
语法:
while 条件语句:
循环体
执行过程:
不断判断条件语句是否为True,为True就执行循环体,如果为False,整个循环直接结束。
······
案例1:打印 3 2 1 0 -1 -2
i=3
while -2<= i:
print("i",i)
i=i-1
案列2:打印100以内所有可以被3整除,不可以被2整除的数:
i=1
while i<=100:
if i%3==0 and i%2!=0:
print(i)
i+=1
案列3:打印 2 4 8 16 32 64
x=2
while x<=64:
print(x)
x*=2
案列4:使用while循环统计:100 ~ 300中能被5整除但是不能3整除的数的个数
x=300
count=0
while 100<= x:
if x%5==0 and x % 3!=0:
count+=1
x-=1
print(count)
4、循环关键字:continue break else
continue
结束一次循环(每次在执行循环体的时候如果遇到了continue,那么这次循环结束直接进入下次循环)
for x in range(3):
print(1)
print(2)
continue
print(3)
1
2
1
2
1
2
for i in range(10):
if i % 2 ==0:
continue
print(i)
# 1 3 5 7 9
break
结束整个循环(执行循环体的时候如果遇到了break,那么整个循环直接结束-循环体剩下的部分不执行,也不再进入下次循环)
for x in range(3):
print(1)
print(2)
break
print(3)
1
2
5、for 和 while 的选择
for 循环能做到的 while 都可以做到,while 能做到的事情 for 不一定能做到
使用建议:能用 for 解决的问题都用 for,for 解决不了的问题用 while。
如果循环次数确定,就使用 for 循环;
如果循环次数不确定,就使用 while 。
使用while循环套路:
while True:
需要重复执行的操作
If 循环结束条件:
Break
pw="123abc"
While True:
提示用户输入密码
if 输入的密码==原来保存的密码:
if value==pw:
Break
pw="123abc"
while True:
value=input("请输入密码:")
if value==pw:
break
print("密码输入正确,登录成功")
from random import randint
num=randint(0,100)
count=0
while count<=6:
i = int(input("请输入您猜得数字:"))
if i==num:
print("恭喜你猜对了")
break
if i > num:
print("大了,再小点")
else:
print("小了,再大点")
count += 1
if 6-count==0:
print("很遗憾,次数用完了")
break
print(f"还剩{6 - count}次,兄弟加油")