1.流程控制
根据代码执行过程不同,可以将代码的结构分为三种:
- 顺序结构(默认): 代码从上往下按顺序依次执行,并且每一条语句只执行一次
- 分支结构(if): 根据条件选择性的执行代码
- 循环结构(for/while): 让代码重复执行
2.分支结构
1) if单分支结构 - 如果xxx就xxx
a. 应用场景: 满足条件才执行某个操作,条件不满足的时候这个操作就不执行
b. 语法:
if 条件语句:
代码段
- 说明:
if - 关键字 固定写法
条件语句 - 可以是任何有结果的表达式
: - 固定写法(注意必须是英文输入法的冒号)
代码段 - 结构上,就是和if保持一个缩进的一条或者多条语句(至少一条)
逻辑上,就是满足条件才会执行的代码
c. 执行过程
先判断条件语句是否为True,如果是,就执行代码中的代码,否则就不执行
- 案例:
age = 19
# 根据age的值打印'成年'
if age >= 18:
print('成年')
2) if双分支结构 - 如果xxx就xxx否则就xxx
语法:
if 条件语句:
代码段1(满足条件会执行的代码)
else:
代码段2(条件不满足时会执行的代码)
- 案例: 根据age的值打印’成年’或者’未成年’
age = 16
if age >= 18:
print('成年')
else:
print('未成年')
3)if多分支结构 - 根据不同的条件做不一样的事情(如果xxx就xxx,如果xxx就xxx,如果xxx就xxx…)
- 方法1
if 条件语句1:
代码段1
if 条件语句2:
代码段2
if 条件语句3:
代码段3
...
- 方法2 - 根据不同条件做不同的事情,并且其中一个条件如果成立了其他的条件一定不会成立的情况(反之使用方法1)
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
...
else:
代码段N
执行过程:判断条件1是否成立,如果成立就执行代码段1,然后整个结构结束(后面的条件不再判断);如果条件1不成立才判断条件2是否成立(后面的条件是在前面的条件不成立的情况下进行的;所有的条件都不成立的时候执行else中的代码)
- 案例: 让百分制分数转换成ABCD四个等级。A(>=90)、B[80,90)、C[60,80)、D(<60)
# 方法1
score = 69
if score >= 90:
print('A')
if 80 <= score < 90:
print('B')
if 60 <= score <80:
print('C')
if score < 60:
print('D')
# 方法2
score = 54
if score >= 90:
print('A')
elif score >= 80:
print('B')
elif score >= 60:
print('C')
else:
print('D')
特别注意:
当条件语句不是标准的条件(结果不是布尔值的表达式),这个时候判断条件语句是否成立的原则·看条件语句对应的表达式的结果转换成布尔是否是True
num = 34
#if 0: -> if False:if num % 2:
print('aaa1')
num = 35
# if 1:-> if True:if num % 2:
print('aaa2')
str1 = 'ac'
if str1 != '':
print('不是空串')
str1 = 'ac'
if str1: #if 'ac': -> if True:
print( '不是空串')
3.分支结构简写
if 条件语句: 代码段(只有一条语句的时候)
总结:冒号换行一个缩进后面的代码如果只有一天语句,那么唯一的这条语句可以直接放在冒号的后面
age = 19
# 单分支结构简写
if age >= 18: print('成年')
# 双分支结构简写
if age >= 18: print('成年')
else: print('未成年')
# 多分支结构简写
if age <= 3: print('幼儿')
elif age <= 12: print('儿童')
elif age < 18: print('青少年')
else: print('成年')
4.三目运算符
-
C语言的三目运算符:
条件?值1:值2 - 判断条件语句是否为真,如果是整个运算表达式的结构是值1,否则是值2
a = age>=18?“成年”:“未成年” -
Python三目运算符
值1 if 条件 else 值2 - 判断条件语句是否为真,如果是整个运算表达式的结构是值1,否则是值2
age = 9
result = '成年' if age > 18 else '未成年'
print(result)