了解条件语句
假设一个场景:
- 期末考试
- 不及格要补考
- 怎样算不及格
- 分数<=60
- 是不是如果分数大于60就不用补考?如果分数小于等于60就不用补考?
其实这里所谓的判断就是条件语句,即条件成立执行某些代码,条件不成立则不执行这些代码。
if 单分支
语法
if 条件(condition):
条件成立执行的代码块(缩进)
statements(indent needed)
- 条件判断为
True
,执行缩进内的代码;条件判断为False,跳过缩进内的代码 - 以缩进区分if语句内部与外部,外部代码与if条件的判断无关,始终执行
如:
grade1=61
grade2=59
#grade1<=60运算结果为False,故不执行
if grade1<=60 :
print("1:补考")
#grade2<=60运算结果为True,故不执行
if grade2<=60 :
print("2:补考")
#不在if语句代码块缩进内,与if语句无关,始终执行
print("学习愉快")
if-else双分支
语法
if 条件:
条件成立时执行的代码块(缩进)
else :
条件不成立时执行的代码块(缩进)
- 条件成立执行if下方缩进的代码; 条件不成立执行else下方缩进的代码。
- 以缩进区分if语句内部与外部,外部代码与if-else条件的判断无关,始终执行
如:
grade=61
#grade<=60为False,执行else代码块
if(grade<=60):
print("补考")
else:
print("通过")
#不在if语句代码块缩进内,与if-else语句无关,始终执行
print("学习愉快")
if-elif-else多分支
语法
if 条件1:
条件1成立时执行的代码块1
elif 条件2:#=else if
条件2成立时执行的代码块2
#......
elif 条件n:
条件n成立时执行的代码块n
#......
else:
以上条件都不成立执行执行的代码
- 从if开始,一个一个条件进行判断,若条件n成立,则直接执行代码块n,并且跳过剩下条件对应的代码块,执行if-elif-else语句外的代码;若条件n不成立,则跳过代码块n,继续判断条件n+1;
如:
grade=int(input("成绩:"))
#(80,100]
if (grade<=100) and (grade>80):
print("优秀")
#[60,80]
elif grade>=60:
print("及格")
#[0,60)
elif grade>=0:
print("补考")
#(-inf,0)
else:
print("输入错误")
#不在if-elif-else语句代码块缩进内,与if-elif-else语句无关,始终执行
print("学习愉快")
三目运算符
语法
值1 if 条件 else 值2
代码1 if 条件 else 代码2
- 三目运算符也叫三元运算符。使if语句更加简洁紧凑。
- 一般用于条件赋值
- 如果条件成立,为True,整个表达式的值为值1;条件不成立,为False,整个表达式的值为值2
- 如果条件成立,为True,执行代码1;条件不成立,为False,执行代码2
如:
grade=int(input("成绩:"))
Pass=True if grade>=60 else False
print("通过") if Pass else print("补考")