Python语法之条件运算符and or not及猜拳小游戏

11.Python语法之条件运算符and or not及猜拳小游戏

提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望对您有用~
python语法-python基础 第十一节 :Python代码条件运算符 and or not 猜拳小游戏



前言

本小节分享:and 、or、 not三个条件运算符的使用区别,后续有一个案例能更深层理解。也可以:为了看明白猜拳小游戏案例逻辑,额外分享了and 、or、 not三个条件运算符。 以此帮助理解Python条件运算符


提示:以下是本篇文章正文内容,下面案例可供参考

一、and运算符 or运算符

这两个运算符:and运算符和or运算符都是拼接两个bool数据类型变量的。简单来说:就是拼接两个条件。从而得到一个新的条件结果:
and 两个条件 需要同时满足
or 两个条件 满足一个即可

首先:

a = 10>0
# a = True
b = 10<0
# b = False
print(type(a))#查看数据类型 前面小节分享过
print(type(b))#可以去前面查看 细节分享
它们的数据类型都是bool

都是bool类型的:
在这里插入图片描述
任何复杂的需求\代码:
要用到and运算符 or运算符。都是这个底层逻辑, 语义分别是:同时满足还是满足一个。所以它们两边都是拼接bool类型。
如果,可以拼接一个不是bool类型的,好,那怎么算。~代码执行还是不执行,(手动,黑人问号表情)。代码本身已经不能准确描述了。

a = 10>0
# a = True
b = 10<0
# b = False

if a and b: #两个同时满足 --》  同时都是true的情况,最后合并起来才是:true
    print("a和b同时都为True!")
else:
    print("二选一,有一个不满足条件")#执行else里面代码块 最终输出这句

if a or b: #满足一个即可 --》  两边任意一个是true的情况,合并起来就是:true
    print("a和b同时满足或者有其中一个满足即可")
else:
    print("a和b同时都为False")

运行结果:
在这里插入图片描述
案例:

score = int(input("请输入成绩"))
#and 同时满足  大于等于0并且小于60
if score >= 0 and score < 60: #用or错误,满足一个即可。 万一用户成绩是90,也是不及格。90大于0
    print('不及格')
elif score >= 60 and score < 90:
    print('良')
elif score >= 90 and score < 100:
    print('优')
else:
    print('请正确输入成绩区间,在0~100之间')

案例思考:
score >= 0 and score < 60 为不及格,需要两边同时满足。
如果用or,逻辑错误(变成了:score >= 0 or score < 60 ),满足一个即可:
万一用户成绩是90,也是不及格。90大于0(满足它:score >= 0)

二、not运算符

not是取相反值
not在Python里面比较常用,经常和其他关键字搭配,如:not None(非空)、not in (不在某某范围内)等等

not除了跟一些语法关键字,后面也可以直接跟bool类型

c = false
if not c:
    print("您好")

运行结果:输出您好
c明明是false,不满足条件的。但是not,取相反值,变成true了
在这里插入图片描述

有些Python自带的很多方法,它返回一个bool给开发者,但是开发者需要相反的值来使用,就可以加一个not ,方法的逻辑需求就完全反过来了。
如:判断某某字符串里面是否含有xx字符,某某列表里面是否含有xx数据,等等。
我们就可以是not :没有xx字符,没有xx数据。


三、猜拳小游戏

需求:系统随机生成一个数字,可以是:1 或者 2 或者 3 的任意一个,
用户填入一个数字,只能是:1 或者 2 或者 3的 任意一个,
我们默认石头:(1)。剪刀:(2)。布:(3)。

#导入提供随机的功能类
import random

#让用户输入一个数字,我们将数字存储到变量player里面
player = int(input("请输入您的操作(1)石头(2)剪刀(3)布"))

# 系统随机生成1-3中的随机数
#随机数方法:random.randint(start,end)
#填写一个起始值和结束值。会随机取出一个数字(包括start,包括end) 所以目前3也能概率取出
computer = random.randint(1,3)

#分析结果
"""
判断玩家赢:
player:1  computer:2
player:2  computer:3
player:3  computer:1
"""
#同时满足这些条件,玩家赢,不需要写很多很多句if嵌套了,用条件运算符一句写完。
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
    print("系统弱爆了,玩家胜出!")
elif player == computer:
    print("平局!")
else:
	#那么长的条件写一次得了,玩家输的情况用else来封装,对吧~
    print("不服,决战到天明!")#玩家输了

总结

and 、or、 not三个条件运算符 分别对应三种不同的情况,根据实际需求去编写即可。