一、判断的定义
- 如果 条件满足,才能做某件事,
- 如果 条件不满足,就做另外一件事情,或者什么也不做
另外:判断语句 又被称为 “分支语句”,正是因为有了判断,才让程序有了很多的分支。
二、if 语句体验
- 2.1、在Python中,if 语句 就是用来进行判断的,格式如下:
if 要判断的条件: 条件成立时,要做的事情 ......
- 注意:代码的缩进为一个
tab
键,或者4个空格--建议使用空格,特别指出:在Python开发中,Tab和空格不要混用
练习年龄是否大于成年,代码如下:
age = 26 if age >= 18: print("已经成年")
- 2.2、在Python中 if的条件不成立的时候所做的事情就要使用到 else 了,如下代码:
age = 16 if age >= 18: print("已经成年人") # 条件成立所做的事情 else: print("还是未成年人") # 条件不成立所做的事情
- 注意: if 与 else 语句以及各自的缩进部分共同是一个 完整的代码块
- 2.3、逻辑运算 :
and
(与)、or
(或)、not
(非)在程序开发中,通常 在判断条件时,会需要同时判断多个条件;只有多个条件都满足,才能执行后续代码,这个时候需要使用到 逻辑运算符;逻辑运算符可以把 多个条件按照逻辑进行连接,变成 更复杂的条件,Python中 逻辑运算符包括:and
(与)、or
(或)、not
(非)
- and`(与): 两边都成立才成立,否则条件不成立
or
(或):两边至少有一个成立才成立,否则条件不成立not
(非): 条件取反
and
:练习代码1、要求判断一个人的年龄是否在 10-50之间,包括两端,如下:
age = 30 if age >= 10 and age <=50: print("age在10-50之间") else: print("age不在10-50之间")
or
:练习代码2、要求判断一个人语文和英语两门课是否有一门及格(成绩大于等于60就是及格),如下:
chineseGrade = 60 englishGrade = 30 if chineseGrade >= 60 or englishGrade >= 60: print("至少有一门成绩及格") else: print("两门成绩都不及格")
not
:练习代码3、要求判断一个人是不是公司的员工,如下:
# 在开发中希望某个条件不满足时执行一些代码,可以使用not; # 另外如果需要拼接复杂的逻辑计算条件,同样也有可能使用到 not; is_employee = False if not is_employee: print("非本公司员工,禁止入内")
三、if 语句进阶
- 3.1、
elif
在开发中,使用if
可以判断条件;使用else
可以处理条件不成立 的情况;但是,如果希望 再增加一些条件,条件不同,需要执行的代码也不同 时,就可以使用elif
语法如下:
if 条件1: 条件1满足执行的代码 ...... elif 条件2: 条件2满足执行的代码 ...... elif 条件3: 条件2满足执行的代码 ...... else : 以上条件都不满足时候执行的代码 ......
- 注意:
elif
和else
都必须和if
联合使用,而不能单独使用;可以将if
、elif
和else
以及各自缩进的代码,看成一个完整的代码块
看下面的演练code(女友生日的判断):
holiday_day = "平安夜" if holiday_day == "平安夜": print("买苹果") elif holiday_day == "情人节": print("买鲜花") elif holiday_day == "生日": print("买蛋糕") else: print("普通的一天,在家睡觉")
- 3.2、
if的嵌套
elif 的应用场景是:同时 判断 多个条件,所有的条件是 平级 的
1.在开发中,使用 if 进行条件判断,如果希望 在条件成立的执行语句中 再增加条件判断,就可以使用 if 的嵌套
2. if的嵌套 的应用场景就是:在之前条件满足的前提下,再增加额外的判断
3.if的嵌套 的语法格式,除了缩进之外 和之前的没有区别
- 语法如下:
if 条件1: 条件1满足执行的代码 ...... if 条件1基础上的条件2: 条件2满足执行的代码 ...... else : 条件2不满足执行的代码 else : 条件1不满足执行的代码 ......
- 看下面的需求写code
1.定义布尔变量
has_ticket
表示是否有火车票2.定义整型变量
knife_length
表示刀的长度,单位:厘米3.首先检查是否有车票,如果有,才允许进行 安检
4.安检时候,需要检查刀的长度,判断是否超过20cm
如果超过 20 厘米,提示刀的长度,不允许上车
如果不超过 20 厘米,安检通过
5.如果没有车票不允许进门
- 看下面的code
# 定义布尔变量 `has_ticket` 表示是否有火车票 has_ticket = True # 定义整型变量 `knife_length` 表示刀的长度,单位:厘米 knife_length = 30 if has_ticket: # 有车票 print("有车票") if knife_length > 20: print("您携带的刀子长度是 %ld,超过20里面,不允许您上车" % knife_length) else: print("安检通过") else: print("没有车票,无法进行乘车")
四、if 语句的综合运用:剪刀石头布
- 4.1、随机数(下面的综合运用会涉及到)
- 在
Python
中,要使用随机数,首先要导入 随机数 的 模块 -- “工具包”
import random
- 在导入模块后,可以直接在 模块名称 后面敲一个
.
然后按tab
键,会提示该模块中包含的所有函数 random.randint(a,b)
,返回[a,b]
之间的整数,包含a
和b
- 例如:
random.randint(3,10) # 生成的随机数n: 3<= n <= 20 random.randint(10,10) # 结果永远是 10 random.randint(10,3) # 该语句是错误的,下限必须小于上限
- 4.2、需求:
1.从控制台输入要出的拳--石头(1)、剪刀(2)、布(3)
2.电脑 随机 出拳
3.比较胜负
4.胜利的标准:
石头 胜 剪刀
;剪刀 胜 布
;布 胜 石头
# 注意:在导入工具包的时候,应该导入的语句,放在文件的顶部, # 因为这样可以方便下方的代码,在任何需要的时候,使用工具包中的工具 import random # 定义玩家的变量 player = int(input("请输入要出的拳--石头(1)、剪刀(2)、布(3): ")) # 电脑出的拳 computer = random.randint(1,3) print("玩家出的 %d 电脑出的 %d" % (player,computer)) # 玩家赢的可能是 石头:剪刀; 剪刀:布 ; 布:石头 if (player==1 and computer == 2) or (player==2 and computer == 3) or (player==3 and computer == 1): print("欧耶,电脑弱爆了") elif player == computer: print("真是心有灵犀,再来一局吧") else: print("我不服,再来")
注意:大家可以看到上面的if后面的语句很长,可加个括号如下:
if (player==1 and computer == 2) or (player==2 and computer == 3) or (player==3 and computer == 1): print("上面太长了")
改过后如下:(两头加括号,在or前面按回车)
if ((player==1 and computer == 2) or (player==2 and computer == 3) # 前面相对于上一行有 8 个空格 or (player==3 and computer == 1)):