python 流程控制
Posted chendaodeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 流程控制相关的知识,希望对你有一定的参考价值。
## if 判断
语法
if 条件:
代码1
代码2
代码3
...
# 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)
if cls = ‘human‘ gender = ‘female‘ age = 24 if cls == ‘human‘ and gender == ‘female‘ and age > 28 and age < 28: print(‘开始表白‘) print(‘end...‘)
## if ...else
语法
if 条件:
代码1
代码2
代码3
...
else:
代码1
代码2
代码3
...
f...else表示if成立代码成立会干什么,else不成立会干什么。
if...else cls = ‘human‘ gender = ‘female‘ age = 38 if cls == ‘human‘ and gender == ‘female‘ and age > 16 and age < 22: print(‘开始表白‘) else: print(‘阿姨好‘)
## if…elif…else
语法:
if 条件1:
代码1
代码2
代码3
...
elif 条件2:
代码1
代码2
代码3
...
elif 条件3:
代码1
代码2
代码3
...
...
else:
代码1
代码2
代码3
...
if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。
if...elif...else cls = ‘human‘ gender = ‘female‘ age = 28 if cls == ‘human‘ and gender == ‘female‘ and age > 16 and age < 22: print(‘开始表白‘) elif cls == ‘human‘ and gender == ‘female‘ and age > 22 and age < 30: print(‘考虑下‘) else: print(‘阿姨好‘)
练习1:成绩评判
# # -*-coding:utf-8-*- # 如果 成绩>=90,打印"优秀" # * 如果 成绩>=80 并且 成绩<90,打印"良好" # * 如果 成绩>=70 并且 成绩<80,打印"普通" # # * 其他情况:打印"差" score = input("请输入你的成绩:") score = int(score) if score >= 90: print ("优秀") elif score >= 80: print ("良好") elif score >= 70: print ("普通") else: print ("差")
练习2:模拟登录注册
ser_from_db = ‘jason‘ pwd_from_db = ‘123‘ user_from_inp = input(‘username: ‘) pwd_from_inp = input(‘password: ‘) if user_from_inp == user_from_db and pwd_from_inp == pwd_from_db: print (‘登陆成功‘) else: print (‘用户名或密码错误‘)
## if
嵌套
先给我完成一个需求说循环打印出1,2,3,4,5,6,7,8,9
```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循环嵌套
ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。
退出内层循环的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) else: print(‘username or password error‘) print(‘退出了while循环‘)
退出内层循环的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) 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循环
or 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循环也可以按照索引取值
for i in range(1, 10): # range顾头不顾尾 print(i) # python2与python3中range的区别(cmd窗口演示即可) # for循环按照索引取值 name_list = [‘jason‘, ‘nick‘, ‘tank‘, ‘sean‘] # for i in range(0,5): # 5是数的 for i in range(len(name_list)): print(i, name_list[i])
## for+break
# for+break name_list = [‘nick‘, ‘jason‘, ‘tank‘, ‘sean‘] for name in name_list: if name == ‘jason‘: break print(name)
## for+continue
# for+continue name_list = [‘nick‘, ‘jason‘, ‘tank‘, ‘sean‘] for name in name_list: if name == ‘jason‘: continue print(name)
## for循环练习题
# 1.打印99乘法口诀表 ‘‘‘ 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 ... 9*1=9.................9*9=81 ‘‘‘ for i in range(1,10): #i=3 for j in range(1,i+1): print(‘%s*%s=%s ‘ %(i,j,i*j),end=‘‘) #i=2 j=2 print()
以上是关于python 流程控制的主要内容,如果未能解决你的问题,请参考以下文章