一、判断的定义
- 如果 条件满足,才能做某件事,
- 如果 条件不满足,就做另外一件事情,或者什么也不做
另外:判断语句 又被称为 “分支语句”,正是因为有了判断,才让程序有了很多的分支。
二、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)):