Python条件语句
目录
比较运算符
逻辑运算符
条件语句
单分支
多分支
if 嵌套
石头剪刀布游戏
比较运算符
运算符 | 作用 | 栗子 |
== | 判断两个操作数是否为真,如果相等为真,否则为假 | a = 3,b = 9,a == b结果为False |
!= | 判断两个操作数是否不等,如果不等为真,否则为假 | a = 4, b = 5, a != b结果为True |
> | 判断左边的操作数是否大于右边操作数,大于真,否则假 | a = 5, b = 5 a > b结果为False |
< | 判断左边的操作数是否小于右边操作数,大于真,否则假 | a = 5, b = 9 a < b 结果为True |
>= | 判断左边的操作数是否大于等于右边操作数,大于真,否则假 | a = 5, b = 5 a >= b结果为True |
<= | 判断左边的操作数是否小于等于右边操作数,大于真,否则假 | a = 5, b = 9 a < b 结果为True |
print(9 == 3) # False
print(5 != 3) #True
print(9 > 9) # False
print(9 < 9) #False
print(9 >= 9) #True
print(9 <= 9) #True
逻辑运算符
运算符 | 表达式 | 描述 | 例子 |
and | x and y | 并且的意思,当x和y都为真才为真,如果有一个为假,那么就是假 | 9 and 0,返回False |
or | x or y | 或的意思,只要有一个为真就为真,全为假才为假 | 9 and 0,返回True |
not | not x | 非,进行取反操作,如果x为True,返回False,如果x为False,返回True | not 1,返回false |
条件语句
条件语句就是如果满足条件,那就执行该条件的代码。
单分支
if 语法:
在键盘上输入一个年龄,如果是大于等于18,那么可以去网吧。
python中没有{}这个玩意,而是使用缩进的方式来表示代码块。
age = int(input('请输入你的年龄: '))
if age >= 18:print('可以去网吧打Dota')print('但是你只可以玩2小时')
print('早点睡觉,别熬夜') # 无论条件是否成立都会打印
我们输入的年龄是19,大于18,因此会执行if代码块里的语句。
输入的年龄是9,条件不成立,因此不会执行代码块里的语句。
多分支
if else 语法:
在键盘上输入一个年龄,如果是大于等于18,那么可以去网吧,否则回家写作业。
age = int(input('请输入你的年龄: '))
if age >= 18:print('可以去网吧打Dota')print('但是你只可以玩2小时')
else:print('回家写作业去吧')
print('早点睡觉,别熬夜') # 无论条件是否成立都会打印
用户输入一个年份判断闰年
判断闰年的条件是4年一闰百年不闰,400年一闰。也就是说闰年的条件是,可被4整除并且不能被100整除,或者是能被400整除。
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:print('闰年')
else:print('平年')
and是并且的意思,当多个条件同时成立才为真,or是或者的意思,只要有一个为真就是真。
刚刚是2选1,如果我是多个条件呢?
if elif ... else语法:
查看成绩
1.用户输入一个分数
2.分数大于等于90并且小于等于100,优秀
3.分数大于等于80并且小于90,中等
4.分数大于等于70并且小于80,良好
5.分数大于等于0并且小于70,继续努力
6.输入其它分数,成绩无效
score = float(input('请输入你的音乐成绩: '))if score >= 90 and score <= 100:print('优秀')
elif 80<= score < 90:print('中等')
elif score >= 70 and score < 80:print('良好')
elif score >= 0 and score < 70:print('继续努力')
else:print('成绩无效')
注意:
else 一般用在最后,即所有条件都不满足时使用
elif else必须和if配合使用,不能单独使用
if 嵌套
if嵌套的使用场景:在满足条件的基础上,还需要增加判断
火车站安检
1.首先检查是否有车票,如果有才允许进行安检
2.安检时,需要检查是否有违禁物品,如果有,不允许上车,否则安检通过
3.如果没有车票,不允许进门
# 定义一个布尔类型的变量,表示是否有票
has_ticket = True
# 在定义一个布尔类型的变量,表示是否携带违禁物品
has_dangerous = Falseif has_ticket:print('有车票,开始安检......')if has_dangerous:print('安检通过')else:print('携带违禁物品,安检不通过')
else:print('没有票,请您购票再来')
坐公交
如果有钱大于1块钱,可以上车,否则不能上车,上车后如果有空座,可以坐下,没有空座,就站这。
# 定义一个整型,表示有多少钱
money = int(input('请输入您有多少钱: '))
# 定义一个布尔类型变量,表示是否有座位为空
is_empty = True # True表示有座位为空,False表示没有座位为空if money >= 1:print('请您上车...')if is_empty:print('有空座,您可以坐下')else:print('没有空座,请您稍微站一会儿')
else:print('抱歉,您的钱不够,不能上车')
石头剪刀布游戏
我们先来考虑一下我们胜利的条件,如果是下面的情况,那么我们会胜利。
玩家 | 电脑 |
石头 | 剪刀 |
剪刀 | 布 |
步 | 石头 |
如果我们和电脑出的一样,说明平局了。
我们用0代表石头,1代表剪刀,2代表布,然后让电脑随机生成一个0-2之间的数。
那么如何随机生成数呢?可以导入random模块。
# 导入随机数模块
import randomplayer = int(input('请出拳: 0(石头), 1(剪刀), 2(布): '))
computer = random.randint(0, 2) #生成[0,2]范围内的随机数
print(f'电脑的出拳是{computer}')# 我获胜的情况
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('电脑获胜')