一、循环语句之for【重点掌握】
1.基本语法
语法:
for 变量名 in 序列:
循环体
功能:for循环主要用于遍历任何序列【容器】,比如列表,字符串,元组,字典和集合等
遍历:指的是依次访问序列中的每一个元素,获取每个元素值
说明:按照顺序获取序列中的每个元素,赋值给变量名,再执行循环体,如此循环往复,直到取完序列中所有的元素为止
""" for 变量名 in 序列: 循环体 注意: 1.变量名自定义,只要是一个合法的标识符即可 2.序列一般指的是列表,字符串,元组,字典和集合等容器 3.for循环的循环次数是由序列中的数据的个数 或 由序列的长度 决定的 """ # 1.字符串 for a in "hello": print(a) # 工作原理:将h取出,赋值给a,然后打印,接着将e取出,重新赋值给a,再接着打印,。。。依次类推, # 直到字符串hello中的所有字符全部获取完,则循环结束 # 2.列表 numlist = [23,5,6,7,7,87,9,0] for num in numlist: print(num) # 3.range(start,end,step)本质是生成一个数据具有某种规律的容器,其中的数据一般都是等差数列 for i in range(10): print(i) for j in range(1,21,2): print(j) """ 总结: while循环:如果不确定循环的次数,则优先使用while循环的死循环 for循环:如果确定循环的次数,则优先使用for循环 在实际项目开发中,for循环使用较多 """
2.使用
# 1.打印0~9的数字 n1 = 0 # 0--->start while n1 <= 9: # 9----->end - 1 print(n1) n1 += 1 # n1 += 1 ------>step for m1 in range(10): print(m1) print("*" * 30) # 2.求1~100之间所有整数的和 n2 = 1 total2 = 0 while n2 <= 100: total2 += n2 n2 += 1 print(total2) total2 = 0 for m2 in range(1,101): total2 += m2 print(total2) print("*" * 30) # 3.求1~100之间所有偶数的和 # 方式一 n31 = 1 total31 = 0 while n31 <= 100: if n31 % 2 == 0: total31 += n31 n31 += 1 print(total31) total31 = 0 for m31 in range(1,101): if m31 % 2 == 0: total31 += m31 print(total31) # 方式二 n32 = 2 total32 = 0 while n32 <= 100: total32 += n32 n32 += 2 print(total32) total32 = 0 for m32 in range(2,101,2): total32 += m32 print(total32) print("*" * 30) # 4.求1-2+3-4......+97-98+99-100的值 n4 = 1 total4 = 0 while n4 <= 100: if n4 % 2 == 0: total4 -= n4 else: total4 += n4 n4 += 1 print(total4) total4 = 0 for m4 in range(1,101): if m4 % 2 == 0: total4 -= m4 else: total4 += m4 print(total4) print("*" * 30) # 5.统计1~100之间能被3或6整除的数的个数 n5 = 1 count5 = 0 while n5 <= 100: if n5 % 3 == 0 or n5 % 6 == 0: count5 += 1 n5 += 1 print(count5) count5 = 0 for m5 in range(1,101): if m5 % 3 == 0 or m5 % 6 == 0: count5 += 1 print(count5) print("*" * 30) # 6.求10的阶乘 n6 = 1 total6 = 1 while n6 <= 10: total6 *= n6 n6 += 1 print(total6) total6 = 1 for m6 in range(1,11): total6 *= m6 print(total6) # 7.打印九九乘法表 # 外层循环:控制行 row = 1 while row <= 9: # 内层循环:控制列 col = 1 while col <= row: # 循环体 print(f"{col}*{row}={col * row}",end=" ") col += 1 row += 1 # 换行 print() for row in range(1,10): for col in range(1,row + 1): print(f"{col}*{row}={col * row}", end=" ") print() # 扩展:f"{数据1} {数据2} {数据3}" print(f"{10}-{20}") print(f"姓名:{'张三'},年龄:{18},身高:{172.0}") name = "小明" print(f"大家好,我是{name}") # 大家好,我是小明 print(f"大家好,我是name") # 大家好,我是name
二、break和continue【重点掌握】
1.break
# 1. n = 0 while n < 10: print(n) n += 1 # 0~9 print("*" * 30) # 2.break是一个关键字,可以单独作为一条语句使用 # 作用:主要应用在循环中,包括while循环和for循环,在满足条件的情况下,可以提前结束循环 # 官方解释:跳出循环/结束循环 n = 0 while n < 10: print(n) if n == 4: break n += 1 # 0~4 print("*" * 30) # 3.break应用在嵌套循环中,break结束的是当前循环【就近原则】 for a in range(3): for b in range(5): print(f"{a}={b}") # 15 print("*" * 30) for a in range(3): for b in range(5): print(f"{a}={b}") if b == 2: break # 9 # 4.练习 # 需求1:猜数字游戏 """ 让程序产生一个指定范围内的随机数,让用户猜【从控制台输入】,进行数据比较 直到猜中,表示游戏结束 """ """ import random # 产生一个1~100之间的随机数 random_num = random.choice(range(1,101)) print(random_num) # 定义一个变量,用于统计猜的次数 count = 0 while True: count += 1 # 用户输入的数 input_num = int(input("请输入一个1~100之间的整数:")) # 比较大小 if input_num > random_num: print("猜大了,往小了猜 ") elif input_num < random_num: print("猜小了,往大了猜") else: print("恭喜你,猜中了") # 当猜中之后,表示游戏结束,跳出死循环 break print(f"你总共猜了{count}次") if count > 6: print("智商余额不足,请充值") """ # 需求2:模拟用户的登录过程,用户名或密码允许错误三次,如果超过三次,则禁止登录 # 当用户名为admin,密码为123时,则表示登录成功 for _ in range(3): username = input("请输入你的用户名:") password = input("请输入你的密码:") if username == "admin" and password == "123": print("登录成功") break else: print("用户名或密码输入有误,请重新登录") else: print("已经输入错误三次,禁止再次输入") # 注意1:如果for循环仅仅用来控制次数,其中的变量在循环体中未被使用,则可以使用下划线替代 # 注意2:while和for的使用基本相同,都有else分支,用法也完全相同 # 结论:如果while语句 或 for语句 中出现了break,且break有机会被执行到,则else分支没有执行的机会
2.continue
# break:打断/结束 # continue:继续/接着 # 1. n = 0 while n < 10: print(n) n += 1 # 0~9 print("*" * 30) # 2.continue:结束本次循环,继续下一次循环 # break:直接跳出当前循环,表示整个循环全部结束 n = 0 while n < 10: print(n) if n == 4: n += 1 continue n += 1 n = 0 while n < 10: if n == 4: n += 1 continue print(n) n += 1 # 3.需求:模拟用户的登录过程,用户名或密码允许错误三次,如果超过三次,则禁止登录 # 当用户名为admin,密码为123时,则表示登录成功 error_num = 0 while True: username = input("请输入你的用户名:") password = input("请输入你的密码:") if username == "admin" and password == "123": print("登录成功") break else: print("用户名或密码输入有误,请重新登录") error_num += 1 if error_num == 3: print("已经错误三次,禁止输入") # 结束循环 break # 结束程序 # exit() else: continue