- 1、程序结构
- 2、`if`语句
- 3、`if-else`语句
- 4、`if…elif…else`语句——多重if选择结构
- 5、嵌套选择结构
- 6、条件表达式
- 7、练一练
- 计算身体质量指数
- 猜拳游戏
- 升序排序
Python程序设计中的3种基本结构为顺序结构、选择结构和循环结构。
生活中的判断场景
程序中的判断场景
Python中使用if保留字来组成选择语句,简单的语法格式如下:
if 表达式: 语句块
练一练:
- 从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“已成年,网吧可以去了”。
- 张三Python成绩大于98分,而且html成绩大于95分,老师奖励他;或者Python成绩等于100分,PS成绩大于85分,老师也可以奖励他。
- 编写程序,从键盘获取用户名和密码,然后判断,如果正确就输出以下信息:“亲爱的xxx,欢迎登陆 XXXX系统。”
注意:在Python中,
真:数字非0、字符串
假:空字符串、None、0、[]、{}
Python中提供了if-else语句解决类似问题,其语法格式如下:
if 表达式:
语句块1
else:
语句块2
ticket = 1 # 用1代表有车票,0代表没有车票
if ticket == 1:
print("有车票,可以上火车")
print("终于可以见到Ta了,美滋滋~~~")
else:
print("没有车票,不能上车")
print("亲爱的,那就下次见了,一票难求啊~~~~(>_<)~~~~")
练一练:
- 从键盘输入刀子的长度,如果刀子长度没有超过10cm,则允许上火车,否则不允许上火车。
- 用户输入两个数a、b。如果a能被b整除或a加b大于1000,则输出a;否则输出b。
对学生的期末考试成绩评测
- 成绩>=90 :优秀
- 成绩>=80 :良好
- 成绩>=70 :中等
- 成绩>=60 :及格
- 成绩<60 :不及格
分析:将成绩分成几个连续区间判断。
解决一:使用5个if解决。
使用单个if选择结构无法完成。
使用多个if选择结构可以实现,但要写很多个,而且条件写起来比较复杂。
解决二:使用多重if选择结构。
在开发程序时,如果遇到多选一的情况,则可以使用if…elif…else语句,该语句是一个多分支选择语句,通常表现为“如果满足某种条件,就会进行某种处理,否则,如果满足另一种条件,则执行另一种处理if…elif…else语句的语法格式如下 :
if 表达式1: 语句块1 elif 表达式2: 语句块2 … else: 语句块n
print("在古希腊神话中,玫瑰花集爱情与美丽于一身,所以人们常用玫瑰来表达爱情。n")
print("但是你知道吗?不同朵数的玫瑰花代表的含义是不同的。n")
#获取用户输入的朵数,并转换为整型
number = int(input("输入你想送几朵玫瑰花,小泸会告诉您含义:"))
if number == 1: #如果输入的是1,代表1朵
print("1朵:一见钟情!")
elif number == 2: #输入2
print("2朵:这世界只有我俩!")
elif number == 4: #输入2
print("4朵:至死不渝!")
elif number == 10: #输入2
print("10朵:十全十美!")
elif number == 99: #输入2
print("99朵:天长地久!")
elif number == 100: #输入2
print("100朵:百分之百的爱!")
elif number == 108: #输入2
print("108朵:求婚!")
else: #输入其它数字
print("无论送她多少朵,都代表你满满的爱意!")
想一想:
问:多重if选择结构中各个条件(即elif块)的顺序可以任意排列吗?
答:在多重if选择结构,如果条件之间存在连续关系,则elif块的顺序不是乱排的,要么从大到小,要么从小到大,总之是有序的排列。如果多重if选择结构中的所有条件之间只是简单的互斥,不存在连续关系,则条件没有顺序要求。
前面3种形式的选择语句之间都可以互相嵌套。
在最简单的if语句中嵌套if…else语句,形式如下:
if 表达式1: if 表达式2: 语句块1 else: 语句块2
在if…else语句中嵌套if…else语句,形式如下:
if 表达式1:
if 表达式2:
语句块1
else:
语句块2
else:
if 表达式3:
语句块3
else:
语句块4
if选择语句可以有多种嵌套方式,开发程序时,可以根据自身需要选择合适的嵌套方式,但一定要严格控制好不同级别代码块的缩进量。
示例:
国家质量监督检验检疫局发布的《车辆驾驶人员血液、呼气酒精含量阈值与检验》中规定:车辆驾驶人员血液中的酒精含量小20mg/100ml不构成饮酒驾驶行为;酒精含量大等于20mg/100ml、小于80mg/100ml为饮酒驾车;酒精含量大于或等于80mg/100ml为醉酒驾车。现编写一段Python代码来帮助泸州交警判断司机是否存在酒后驾车。
print("n 中国酒城·醉美泸州 四川省泸州市欢迎您! n")
print("美酒虽好,请不要贪杯哦!为了您和他人的安全,严禁酒后驾车!n")
#获取驾驶员输入的酒精含量,并转换为整型
proof = int(input("请输入驾驶员每100ml血液的酒精含量:"))
if proof < 20: #酒精含量小于20mg,不构成饮酒行为
print("n您还不构成饮酒行为,可以开车,但要注意安全!")
else: #酒精含量大于或等于20mg,已经构成饮酒驾车行为
if 80 > proof >= 20: #酒精含量大于或等于20mg且小于80mg,达到饮酒驾驶标准
print("n已经达到酒后驾车标准,请不要开车!")
else: #酒精含量大于或等于80mg,已经达到醉酒驾驶标准
print("n已经达到醉酒驾车标准,千万不要开车!")
chePiao = 1 # 用1代表有车票,0代表没有车票
daoLenght = 9 # 刀子的长度,单位为cm
if chePiao == 1:
print("有车票,可以进站")
if daoLenght < 10:
print("通过安检")
print("终于可以见到Ta了,美滋滋~~~")
else:
print("没有通过安检")
print("刀子的长度超过规定,等待警察处理...")
else:
print("没有车票,不能进站")
print("亲爱的,那就下次见了,一票难求啊~~~~(>_<)~~~~")
练一练:
- 学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组。
- 情节描述:上公交车,并且可以有座位坐下。
在程序开发时,经常会根据表达式的结果,有条件地进行赋值。例如,要返回两个数中较大的数,可以使用下面的if语句:
a = 10
b = 6
if a > b:
r = a
else:
r = b
针对上面的代码,可以使用条件表达式进行简化,代码如下:
a = 10 b = 6 r = a if a > b else b7、练一练 计算身体质量指数
身体质量指数 (Body Mass Index, 简称BMI), 是关于体重指标的质量测量,将以千克为单位的体重除以以米为单位身高的平方,就得到BMI的值。针对16岁及以上年龄的人群,他们的BMI值说明如下表所示:
从键盘录入人的出拳,计算机随机出拳,实现人和计算机的一次猜拳。
[0,2]的随机整数产生如下:
import random print(random.randint(0,2))升序排序
从键盘输入3个整数,分别赋给整数变量a,b,c,然后将输入的整数按照从小到大的顺序放在变量a,b,c中,并输出三个变量的值。



