流程控制 while和for循环
1.宏观一定是自上而下(逻辑上方代码一定比逻辑下方代码先执行):顺序结构
2.遇到需要条件判断选择不同执行路线的执行方式:分支结构
3.有些事情需要重复不断的去执行(当满足某种条件或不满足某种条件结束重复动作):循环结构
if 条件:
代码1
代码2
代码3
...
# 条件成立时执行代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)
2.if ... else ...:
if 条件: 代码1 代码2 代码3 ... else: 代码1 代码2 代码3 ### if条件成立时执行代if的码块,否则执行else的代码块
3.
if 条件1: 代码1 代码2 代码3 ... elif 条件2: 代码1 代码2 代码3 ... elif 条件3: 代码1 代码2 代码3 ... ... else: 代码1 代码2 代码3
#哪一个条件成立就执行那个代码块,只会执行一个分支的代码块
1.语法: while 条件: 循环体代码 2.工作步骤: #1.当条件满足时,会执行循环体,然后再去判断条件成功与否 #2.如果还满足,重复1,2的过程,不满足结束循环
break的意思是终止当层的循环,执行其他代码。
# break语法演示 示例1: while True: print('1') print('2') break print('3') # 上面仅仅是演示break用法,实际不可能像我们这样去写,循环结束应该取决于条件 示例2: user_db = 'jason' pwd_db = '123' while True: inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd: print('login successful') break else: print('username or password error') print('退出了while循环')
示例1: n = 1 while n < 10: if n == 6: n += 1 # 如果注释这一行,则会进入死循环 continue print(n) n += 1
四.循环嵌套
#1. 退出双层循环的while循环嵌套 user_db = 'jason' pwd_db = '123' while True: inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd: print('login successful') while True: cmd = input('请输入你需要的命令:') if cmd == 'q': break print('%s功能执行'%cmd) break else: print('username or password error') print('退出了while循环') 上述方法有点low,有多个while循环就要写多个break,有没有一种方法能够帮我解决,只要我退出一层循环其余的各层全都跟着结束>>>:定义标志位 # 退出双层循环的while循环嵌套 user_db = 'jason' pwd_db = '123' flag = True while flag: inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd: print('login successful') while flag: cmd = input('请输入你需要的命令:') if cmd == 'q': flag = False break print('%s功能执行'%cmd) else: print('username or password error') print('退出了while循环')
五.while+else(了解)
while+else:else会在while没有被break时才会执行else中的代码。
# while+else n = 1 while n < 3: if n == 2:break # 不会走else print(n) n += 1 else: print('else会在while没有被break时才会执行else中的代码')
for用来完成特定的循环需求 语法: for 循环得到的结果 in 被循环的容器: 循环体 # 1.第一次循环,循环得到的结果 就是 被循环的容器 中第一个值 # 2.再次循环,循环得到的结果 会被重新赋值为 被循环的容器 中第二个值,以此类推 # 注:每一次循环 循环得到的结果 不使用,下一次循环就会被覆盖,无法找回 # 3.当 被循环的容器 中的值被 循环得到的结果 全部赋值一遍后,循环自动结束 ''' # range() # 1. range(结束不被包含) # 2. range(开始被包含, 结束不被包含) # 3. range(开始被包含, 结束不被包含, 步长) # 4. range(10, 5, -1) # [10, 9, 8, 7, 6]
#1.列表循环 name_list = ['jason', 'nick', 'tank', 'sean'] for name in name_list: print(name) # 对比与while更加简便 #2. 再来看for循环字典会得到什么 info = {'name': 'jason', 'age': 19} for item in info: print(item) # 拿到字典所有的key print(info[item]) # for可以不依赖于索引取指,是一种通用的循环取指方式 # for的循环次数是由被循环对象包含值的个数决定的,而while的循环次数是由条件决定的
三.
# for+break name_list = ['nick', 'jason', 'tank', 'sean'] for name in name_list: if name == 'jason': break print(name) # nick
四.
# for+continue name_list = ['nick', 'jason', 'tank', 'sean'] for name in name_list: if name == 'jason': continue print(name)
结果:
nick
tank
sean