控制流程之while循环, for循环
条件循环:while,语法如下
while 条件: # 循环体 # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。 # 如果条件为假,那么循环体不执行,循环终止
死循环
基本使用1: print('start.....') while 10 < 3: print('hello1') print('hello2') print('hello3') print('end....')
基本使用2: count = 0 while count < 6: # 6 < 6 print(count) count += 1 print('end.....')
1、基本使用:
db_name = "egon" db_pwd = "123" while True: inp_name = input("请输入您的用户名: ") inp_pwd = input("请输入您的密码: ") if inp_name == db_name and inp_pwd == db_pwd: print("用户登录成功") else: print("用户账号或密码错误")
2、如何结束while循环
(1)把条件改为False
db_name = "egon" db_pwd = "123" tag = True while tag: inp_name = input("请输入您的用户名: ") inp_pwd = input("请输入您的密码: ") if inp_name == db_name and inp_pwd == db_pwd: print("用户登录成功") tag = False else: print("用户账号或密码错误") print('其他。。。。。。。。。') (2)break:直接终止本层循环 db_name = "egon" db_pwd = "123" while True: inp_name = input("请输入您的用户名: ") inp_pwd = input("请输入您的密码: ") if inp_name == db_name and inp_pwd == db_pwd: print("用户登录成功") break else: print("用户账号或密码错误") print('其他。。。。。。。。。')
循环嵌套
while True: while True: while True: break break break tag = True while tag: while tag: while tag: tag = False 3、死循环 while True: # print('Hello') # input(">>: ") 1+1 4、while+continue: 终止本次循环 强调1:不要在continue之后编写同级别的代码 count = 0 while count < 6: # 5 < 6 if count == 3 or count == 4: count += 1 continue # count+=1 # 不要写在这里 print(count) count += 1
强调2: 如果不想执行本次循环之后的代码,可以用continue,但是如果本次循环本来就没有要继续运行的后续代码了,就没必要加continue了
db_name = "egon" db_pwd = "123" while True: inp_name = input("请输入您的用户名: ") inp_pwd = input("请输入您的密码: ") if inp_name == db_name and inp_pwd == db_pwd: print("用户登录成功") break else: print("用户账号或密码错误") # continue 5、while+else count = 0 while count < 6: print(count) if count == 3: break count+=1 else: print('会在while循环正常死亡之后运行')
例子:
5、 while循环嵌套 db_name = "egon" db_pwd = "123" while True: inp_name = input("请输入您的用户名: ") inp_pwd = input("请输入您的密码: ") if inp_name == db_name and inp_pwd == db_pwd: print("用户登录成功") while True: print(""" 0 退出 1 取款 2 提现 3 转账 """) cmd=input("请输入您的命令编号:") if cmd == "0": break elif cmd == "1": print("正在取款") elif cmd == "2": print("正在提现") elif cmd == "3": print("正在转账") else: print("不知道的指令,请重新输入") break else: print("用户账号或密码错误") tag的方式结束循环 db_name = "egon" db_pwd = "123" tag = True while tag: inp_name = input("请输入您的用户名: ") inp_pwd = input("请输入您的密码: ") if inp_name == db_name and inp_pwd == db_pwd: print("用户登录成功") while tag: print(""" 0 退出 1 取款 2 提现 3 转账 """) cmd=input("请输入您的命令编号:") if cmd == "0": tag = False elif cmd == "1": print("正在取款") elif cmd == "2": print("正在提现") elif cmd == "3": print("正在转账") else: print("不知道的指令,请重新输入") else: print("用户账号或密码错误") count = 2 x = 0 while count <= 100: if count % 2 == 0: x = x + count else: x -= count count += 1 print(x)
for 循环
1、for循环主要用于循环取值,例如列表、字典、字符串
2、for循环循环的次数取决于值的个数
while循环循环的次数取决条件什么时候变为False或者什么时候执行break
一:基本使用
l = [1111, 222, 333, 444, 555] i = 0 while i < len(l): print(l[i]) i += 1 for x in l: print(x) d = {"k1": 111, "k2": 2222, "k3": 33333} for k in d: print(k,d[k]) msg="hello world" for x in msg: print(x) l = [["aaa", 1111], ["bbb", 2222], ["ccc", 3333]] for x, y in l: # x,y=["aaa",1111] print(x, y)
二:for + break
for x in [111,222,333,4444,555]: if x == 333: break print(x)
三:for + continue
for x in [111,222,333,4444,555]: if x == 333: continue print(x)
四:for + else
for x in [111,222,333,4444,555]: if x == 333: break print(x) else: print('=====>')
上节课我们已经学会用if .. else 来猜年龄的游戏啦,但是只能猜一次就中的机率太小了,如果我想给玩家3次机会呢?就是程序启动后,玩家最多可以试3次,这个怎么弄呢?你总不会想着把代码复制3次吧。。。。