Python选择判断结构(if)
# 1. if 选择判断结构作用
在日常开发中,只要有需要进行条件判断的语句基本上都是选择判断结构。
应用场景:
如果年龄大于等于18岁,则可以正常上网。
如果升级考试成绩大于60分,则表示及格。
# 2. if 选择判断结构的基本语法
Java:
if (条件判断) {
则执行某段代码...
}
但是Python中,不需要使用这么多复杂的符号,直接可以编写条件判断及执行某段代码
Python:
if 条件判断:
则执行某段代码...
print()
示例代码:
if True:
print('条件成立执行的代码1')
print('条件成立执行的代码2')
# 下方的代码没有缩进到if语句块,所以和if条件无关
print('我是无论条件是否成立都要执行的代码')
# 3. if 选择结构示例
需求:定义一个变量age = 18,判断这个变量是否大于等于18岁,如果满足条件,则可以上网。
示例1:直接定义判断,进行条件判断
age = 18
if age >= 18:
print('满足18岁要求,可以正常上网')
示例2:上网吧示例升级版
age = int(input('请输入您的年龄:'))
if age >= 18:
print('满足18岁要求,可以正常上网')
if选择流程图:
# 4. if...else... 结构
基本语法:
if 条件判断:
当条件判断为True时,则执行这个语句段
else:
当条件判断为False时,则执行这个语句段
示例3:上网吧示例升级升级版,引入else
age = int(input('请输入您的年龄:'))
if age >= 18:
print('满足18岁要求,可以正常上网')
else:
print('不满足18岁要求,回家好好学习,天天向上')
if...else...结构流程图:
# 5. if...elif...else 多条件判断结构
如果条件1成立,则执行语句段1
如果条件2成立,则执行语句段2
...
当所有条件都不成立时,则执行else语句段中的内容
if 条件判断1:
如果此条件为True,则执行这个语句段
elif 条件判断2:
如果此条件为True,则执行这个语句段
elif ...:
...
else:
如果以上所有条件判断都不满足时,则执行这个语句段
if多重条件判断流程图:
示例:
① 中国合法工作年龄为18-60岁,即如果年龄小于18的情况为童工,不合法;
② 如果年龄在18-60岁之间为合法工龄;
③ 大于60岁为法定退休年龄。
# 定义一个变量,接收用户输入的年龄
age = int(input('请输入您的年龄:'))
if age < 18:
print('你还是一个童工,回去好好学习')
elif age >= 18 and age <=60:
print('合法工龄,可以正常工作')
else:
print('您已经达到了退休年龄,回家好好休息')
简写形式:
# 定义一个变量,接收用户输入的年龄
age = int(input('请输入您的年龄:'))
if age < 18:
print('你还是一个童工,回去好好学习')
elif 18 <= age <= 60:
print('合法工龄,可以正常工作')
else:
print('您已经达到了退休年龄,回家好好休息')
# 6. if 嵌套结构
基本语法:
if 外层条件判断:
# 如果条件为True,则执行以下语句段
if 内层条件判断:
# 如果内层条件为True,则执行以下语句段
else:
# 如果条件为False,则执行以下语句段
嵌套结构看起来异常复杂,但是我们在编写时要遵循一个原则:先编写外层判断,所有语句编写完成后,在编写内层条件判断结构。
示例:法律规定,车辆驾驶员的血液酒精含量小于 20mg/100ml 不构成酒驾;酒精含量大于或等于 20mg/100ml 为酒驾;酒精含量大于或等于 80mg/100ml 为醉驾。编写 Python 程序判断是否为酒后驾车。
proof = int(input('请输入驾驶员100ml血液中的酒精含量:'))
# 判断proof酒精含量是否小于20mg
if proof < 20:
print('驾驶员不构成酒驾')
else:
# 已经构成酒驾 => 两种类型(酒驾与醉驾)
if proof >= 80:
print('驾驶员已构成醉驾')
else:
print('驾驶员已构成酒驾')
# 7. 综合示例:石头剪刀布
# 7.1 需求分析
参与游戏的角色有两个(玩家 与 电脑),玩家手工出拳,电脑随机出拳,根据石头剪刀布判断输赢。
玩家:player(玩家手工输入石头、剪刀、布)
电脑:computer(随机出拳)
输赢结果很重要,有三种情况:
① 玩家赢
☆ player:石头 赢 computer:剪刀
☆ palyer:剪刀 赢 computer:布
☆ player:布 赢 computer:石头
② 平局
只要player 与 computer出拳相等,就代表平局
③ 电脑赢
如果不满足以上两个条件,则电脑获胜!
未知知识点:如何让计算机随机出拳 => 随机
# 7.2 代码实现
确认:if...elif...else多条件分支结构
# 第一步:提示输入输入石头剪刀布,0-代表石头,1代表剪刀,2代表布
player = int(input('请输入您的出拳0-代表石头,1代表剪刀,2代表布:'))
# 第二步:电脑随机出拳(后续解决)
computer = 1
# 第三步:根据用户以及计算机的出拳判断输赢
# 什么情况,玩家会赢
# player==0且computer==1 或 palyer==1且computer==2 或 player==2且computer==0
if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player==2 and computer == 0):
print('玩家获胜')
elif player == computer:
print('平局')
else:
print('电脑获胜')
遗留问题:计算机没办法随机出拳
# 7.3 随机出拳
Python语言非常的强大,强大之处就在于其拥有很多模块(module),这些模块中拥有很多别人已经开发好的代码,我们可以直接导入到我们的程序中即可使用。
① import导入模块
② 通过模块.方法()调用相关功能
随机出拳其实就是随机从0,1,2中选出一个数字
import random
# 调用内部封装的方法
computer = random.randint(0, 2)
改进猜拳代码:
import random
# 第一步:提示输入输入石头剪刀布,0-代表石头,1代表剪刀,2代表布
player = int(input('请输入您的出拳0-代表石头,1代表剪刀,2代表布:'))
# 第二步:电脑随机出拳(后续解决)
computer = random.randint(0, 2)
print(computer)
# 第三步:根据用户以及计算机的出拳判断输赢
# 什么情况,玩家会赢
# player==0且computer==1 或 palyer==1且computer==2 或 player==2且computer==0
if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player==2 and computer == 0):
print('玩家获胜')
elif player == computer:
print('平局')
else:
print('电脑获胜')