2.6 判断语句
流程是指程序运行时语句的执行次序。Python包含了三种基本流程控制结构:顺序结构、分支结构、循环结构。顺序结构是从上往下的顺序逐剧执行的结构,先执行位置在前的语句、后执行位置在后的语句。本章主要讲授分支结构、循环结构。
分支结构又称选择结构,它是一种在两条或更多条执行路径中选择一条执行的语句控制结构。
(一)单分支结构¶
if 语句单分支结构的语法形式为:
if(条件表达式):
语句块
若条件表达式的逻辑值为True则执行语句块,否则不执行语句块。if语句的条件表达式之后需要添加冒号(:),语句块内的每行语句均需要通过缩进表示同属一个语句块。
运行下述例子:
grade = int(input('输入成绩后,按【回车键】确认')) #Python键盘输入默认为字符串,这里做类型转换,把字符串转成整数
if(grade < 60): # 如果输入小数,也就是浮点数,使用float()来转换
print('很不幸,你挂科了!')输入成绩后,按【回车键】确认 50
很不幸,你挂科了!
练习:if语句¶
如果输入成绩在60分和80分之间,请打印“良好”
(二)双分支结构¶
if 语句双分支结构的语法形式为:
if(条件表达式):
语句块1
else:
语句块2
若条件表达式的逻辑值为True,则执行语句块1;否则执行语句块2。
grade = int(input('输入成绩后,按【回车键】确认'))
if(grade < 60):
print('很不幸,你挂科了!')
else: # 注意else与if对齐
print('恭喜!通过考试')输入成绩后,按【回车键】确认 61
恭喜!通过考试
(三)多分支结构¶
if语句多分支结构的语法如下:
if(条件表达式1):
语句块1
elif(条件表达式2):
语句块2
...
elif(条件表达式n):
语句块n
else:
语句块n+1
grade = int(input('输入成绩后,按【回车键】确认'))
if(grade < 60):
print('很不幸,你挂科了!')
elif(grade >= 60 and grade < 80): # 注意elif与if对齐
print('你及格了!')
elif(grade >= 80 and grade < 90): # 注意elif与if对齐
print('表现不错!')
elif(grade >= 90 and grade<=100): # 注意elif与if对齐
print('优秀!')
else:
print('您输入的成绩有误!')输入成绩后,按【回车键】确认 91
优秀!
练习:计算小明的体重¶
小明身高1.75米,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
Tips:
用if-elif判断并打印结果
练习:计算课程总成绩¶
相信很多老师在授课的第一节课都会告诉学生,本学期的考核和成绩评定方式,例如:
课程总成绩=平时成绩(30%)+测试(70%)
平时成绩=出勤(10%)+课内作业(20%)
测试=期中实验报告(10%)+ 期末实验报告(60%)
出勤不满总出勤周的1/3,无法参加期末考试
现在学校要求我们编写一个程序,让学生输入他本学期的16周的出勤次数、平时作业成绩、期中测验分数和期末卷面成绩来计算出他的总成绩。请告知一下同学他的分数:
student_01 = {'name':'zhangxiaoxian', #姓名
'attendance_numbers': 14, #出勤数
'homework_score': 75, #平时作业分数
'mid_term_exam_score': 80, #期中考试分数
'final_term_score': 85} #期末考试分数
student_02 = {'name':'wangpeng',
'attendance_numbers': 3,
'homework_score': 80,
'mid_term_exam_score': 90,
'final_term_score': 95}
student_03 = {'name':'lifeng',
'attendance_numbers': 12,
'homework_score': 60,
'mid_term_exam_score': 70,
'final_term_score': 75}