单分支选择结构
if语句单分支结构语法:
if 条件表达式:
语句
其中:
条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等
语句:可以是一条语句也可以是多条语句,多条语句缩进必须一致
练习:输入一个数字,小于10则打印这个数字
num=input('请输入一个数字:')
if int(num)<10:
print(num)
请输入一个数字:5
5
条件表达式
在选择和循环结构中,条件表达式的值为False 的情况如下:
False、0、0.0、空值None、空序列对象(空列表、空元组、空集合、空字典、空字符串)、空range 对象、空迭代对象。
其他情况,均为True,这么看来, Python 所有的合法表达式都可以看做条件表达式,甚至包括函数调用的表达式。
>>> if 3:
... print('ok')
ok
>>> a=[]
>>> if a:
... print('False') #没有任何输出
>>> s='False' #非空字符串,是True
>>> if s:
... print('非空字符串,是True')
非空字符串,是True
双分支选择结构
语法:
if 条件表达式:
语句1
else:
语句2
试验:输入一个数字,小于10打印该数字;大于10,打印‘数字太大’
while True: #无限次执行下列代码
num = input("请输入一个数字:")
if int(num) < 10:
print(num)
else:
print('数字太大5')
>>>
请输入一个数字:5
5
请输入一个数字:11
数字太大
三元条件运算符
某些简单双分支赋值情况下可以用三元条件表达式,语法:
if(条件表达式)else 条件为假时的值
上面的案例可以改为:
while True:
num = input("请输入一个数字:")
print(num if int(num)<10 else '数字太大')
多分支选择结构
语法:
if 条件表达式1:
语句1
elif 条件表达式2:
语句2
.
.
.
else:
语句n
试验:输入学生成绩,不及格(小于60)、及格(60-79)、良好(80-89)、优秀(90-100)
while True:
score = float(input("请输入成绩:"))
if score < 60:
print('不及格')
elif 60 <= score < 80:
print('及格')
elif 80 <= score < 90:
print('良好')
elif 90 <= score <= 100:
print('优秀')
>>>
请输入成绩:60
及格
请输入成绩:59
不及格
请输入成绩:100
优秀
方法二:
a=['不及格','及格','良好','优秀']
grade=''
while True:
score = int(input("请输入成绩:"))
b=score//10-6
if b < 0:
grade=a[0]
elif 0<b<2:
grade = a[1]
elif b>1:
grade = a[b]
print("分数是{0},等级是{1}".format(score,grade))
请输入成绩:80
分数是80,等级是良好
请输入成绩:79
分数是79,等级是及格
请输入成绩:90
分数是90,等级是优秀
注:多分支结构,几个分支之间有逻辑关系,不能随意颠倒顺序
while True:
score = float(input("请输入成绩:"))
if score < 60:
print('不及格')
elif score<= 100:
print('优秀')
elif score < 80:
print('及格')
elif score < 90:
print('良好')
>>>
请输入成绩:90
优秀
请输入成绩:80
优秀
请输入成绩:40
不及格
选择结构的嵌套
试验:输入成绩,0-100之间,90以上是A,80以上是B,70以上是C,60以上是D,60以下是E
a='ABCDE'
while True:
score = int(input("请输入成绩:"))
if score>100 or score<0:
print("请输入正确的成绩")
else:
b=score//10
if b-6<0:
b=4
print(a[4])
else:
print(a[4-b])
>>>
请输入成绩:101
请输入正确的成绩
请输入成绩:60
D
请输入成绩:59
E