流程控制,循环语句
今日内容
一,流程控制if
if语句的定义:判断事物对错真假。计算机像人一样工作的前提是计算机能够拥有对事物对错真假的判断能力。
### if
1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
```python if 条件: 代码1 代码2 代码3 ... # 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行) ```
### if…else 表示if成立代码成立会干什么,else不成立会干什么。
```python if 条件: 代码1 代码2 代码3 ... else: 代码1 代码2 代码3 ... ```
### if...elif...else 表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。
```python if 条件1: 代码1 代码2 代码3 ... elif 条件2: 代码1 代码2 代码3 ... elif 条件3: 代码1 代码2 代码3 ... ... else: 代码1 代码2 代码3 ... ```
## if嵌套
```python # if的嵌套 cls = 'human' gender = 'female' age = 18 is_success = False if cls == 'human' and gender == 'female' and age > 16 and age < 22: print('开始表白') if is_success: print('那我们一起走吧...') else: print('我逗你玩呢') else: print('阿姨好') ```
二,流程控制while
实际生活中类似于重复的做一些事情,流水线上的工人反复劳动,知道一定条件停止。
while 条件: 代码1 代码2 代码3 代码4 代码5 ...
## while+break
```python # break语法演示 while True: print('1') print('2') break print('3') # 上面仅仅是演示break用法,实际不可能像我们这样去写,循环结束应该取决于条件 ``` ```python 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循环') ```
break:立即结束本层循环(只针对它所属于的那一个while有效)
## while+continue
continue:跳出本次循环,直接开始下一次循环
```python n = 1 while n < 4: print(n) n += 1 # 这一行不加又会是死循环 ``` 然后需求变一下循环打印1,2,3,4,5,7,8,9,数字6不打印 ```python n = 1 while n < 10: if n == 6: n += 1 # 如果注释这一行,则会进入死循环 continue print(n) n += 1 ``` ps:continue不能加在最后一步执行的代码,因为代码加上去毫无意义 ```python while True: if 条件1: code1 code2 code3 ... continue # 无意义 elif 条件1: code1 code2 code3 ... continue # 无意义 else: code1 code2 code3 ... continue # 无意义 ```
### while循环嵌套
while+else
只有当while循环依据条件正常结束才会走else代码
-如果是主动结束的break,那么不会走else
```python # while+else n = 1 while n < 3: if n == 2:break # 不会走else print(n) n += 1 else: print('else会在while没有被break时才会执行else中的代码') ```
三,流程控制for
不依赖于索引取值,循环可以遍历任何序列的项目,如一个列表或者一个字符串。
```python for name in name_list: print(name) # 对比与while更加简便 # 再来看for循环字典会得到什么 info = {'name': 'jason', 'age': 19} for item in info: print(item) # 拿到字典所有的key print(info[item]) # for可以不依赖于索引取指,是一种通用的循环取指方式 # for的循环次数是由被循环对象包含值的个数决定的,而while的循环次数是由条件决定的 ```
### for+break
跳出本层循环
```python # for+break name_list = ['nick', 'jason', 'tank', 'sean'] for name in name_list: if name == 'jason': break print(name) ```
### for+continue
跳出本次循环,进入下一次循环
```python # for+continue name_list = ['nick', 'jason', 'tank', 'sean'] for name in name_list: if name == 'jason': continue print(name) ```
break语句可以跳出for和while的循环体。如果你从for或while循环中终止,任何对应的循环else块将不执行。
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
循环语句可以有else子句;它在穷尽列表(以for循环)或条件变为假(以while循环)循环终止时被执行,但循环被break