选择结构
选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分支、双分支、多分支。流程图如下:
单分支选择结构
if 语句单分支结构的语法形式如下:
if 条件表达式:
语句/语句块
其中:
(1)条件表达式:可以是逻辑表达式、关系表达式、算术表达式等。
(2)语句/语句块:可以是一条语句,也可是多条语句。多条语句,缩进必须对齐一致。
注意:条件表达式中,不能有赋值操作符号“=”
双分支选择结构
双分支结构的语法格式如下;
if 条件表达式:
语句1/语句块1
else:
语句2/语句块2
【操作】输入一个数字,小于10,则打印该数字;大于10,则打印“数字太大”。
num = input('输入一个数值:')
if int(num) <10:
print(num)
else:
print('数字太大')
三元条件运算符
Python提供了三元运算符,用在某些简单双分支赋值情况。三元条件运算符语法格式如下:
条件为真时的值 if (条件表达式) else 条件为假时的值。
num = input('输入一个数值:')
print(num if int(num)<10 else "数字太大")
多分支选择结构
多分支选择结构的语法格式如下:
if 条件表达式1:
语句1/语句块1
elif 条件表达式2:
语句2/语句块2
.
.
.
elif 条件表达式n:
语句n/语句块n
[else:
语句n+1/语句块n+1]
【注】计算机行业,描述语法格式时,使用中括号[]通常表示可选,非必选。
多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序。
【操作】输入一个学生的成绩,将其转化成简单描述:不及格(小于60)、及格(60-79)、良好(80-89)、优秀(90-100)。
grade = ''
if score<60:
grade = '不及格'
elif score < 80:
grade = '及格'
elif score <90:
grade = '良好'
elif score <= 100:
grade = '优秀'
print('分数是{0},等级是{1}'.format(score,grade))
【操作】已知点的坐标(x,y),判断其所在的象限。
x = int(input("请输入x坐标"))
y = int(input("请输入y坐标"))
if(x == 0 and y == 0):
print("原点")
elif (x==0):
print("y轴")
elif (y == 0):
print("x轴")
elif (x>0 and y>0):
print("第一象限")
elif (x<0 and y>0):
print("第二象限")
elif (x<0 and y<0):
print("第三象限")
else:
print("第四象限")
选择结构嵌套
选择结构可以嵌套,使用时一定要注意控制好不同级别代码的缩进量,因为缩进量决定了代码的从属关系。语法格式如下:
if 表达式1:
语句块1
if 表达式2:
语句块2
else:
语句块3
else:
if表达式4:
语句块4
【操作】输入一个分数,分数在0-100之间。90以上是A,80以上是B,70以上是C,60以上是D,60以下是E。
score = int(input("请输入一个0-100之间的数字:"))
grade = ''
if score>100 or score<0:
score = int(input('输入错误!请重新输入一个0-100之间的数字:'))
else:
if score>=90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score>= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('分数为{0},等级为{1}'.format(score,grade))
另一种程序实现
degree = 'ABCDE'
num = 0
if score>100 or score<0:
score = int(input('输入错误!请重新输入一个0-100之间的数字:'))
else:
num = score//10
if num<6:
num = 5
elif num == 10:
num = 9
print('分数是{0},等级是{1}'.format(score,degree[9-num]))