1.逻辑运算符
作用:用来做逻辑计算的,用来判断的表达式或者变量,运算得到的结果为布尔值
分类:and (逻辑与) or (逻辑或) not(逻辑非)
注意:逻辑运算符可能会出现短路原则【出现在复杂的表达式中,一般会出现在面试题中,在实际开发中,一般逻辑运算符不要超过三个】
例子:逻辑与
表达式1 and 表达式2
True and True = True
True and False = False
False and False =False
False and True = False
规律:全真为真,一假为假
如果表达式1为假,则没有必要判断表达式2,可以得到结果为假
num1=10
num2=20
if num -10 and num2:
print("yes")
else:
print("no")
例子2:
只有当用户名和密码同时正确【admin,123456】,才表示登录成功
username = input("请输入用户名:")
password = input("请输入密码:")
方式一:嵌套if语句
if username == "admin":
if password == "123456":
print("登录成功")
else:
print("密码输入错误")
else:
print("用户名输入错误")
方式二:逻辑and
只有两个条件同时成立的情况下,才表示用户身份验证成功
if username == "admin" and password == "123456":
print("登录成功")
else:
print("用户名或者密码错误")
2.逻辑或
表达式1 or 表达式2
真 or 真 = 真
真假为真
假假为假
规律:一真为真,全假为假
如果表达式1为True,则可以忽略表达式1的值,得到的结果为True
if num1 - 10 or num2:
print("yes")
else:
print("no")
#练习:如果明天的天气好【要么有太阳,要么有风】,咱们出去玩
sunny = "no"
wind = "yes"
#注意:在条件判断的时候,使用and还是or,区别就在于条件成立的几率
if sunny == "yes" or wind == "yes":
print("我们出去玩")
else:
print("学习")
逻辑非
not 表达式
例子:
#.输入三个数,输出最大数
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入第二个数字:"))
num3 = int(input("请输入第三个数字:"))
#定义自定义变量,用于保存最大值
maxValue =num1
#2.比较加上的最大值和num之间的大小
if num2 > num1:
#给maxValue重新赋值
maxValue = num2
#比较maxvalue和num3之间的大小
if maxValue < num3:
maxValue = num3
print(maxValue)
注意:逻辑运算符可能会出现短路原则【出现在复杂的表达式中,一般会出现在面试题中,在实际开发中,一般逻辑运算符不要超过3个】
>
> ```Python
> #1.and:如果运算符全部是and,第一个表达式的值为False,则整个表达式的值为False,其他的表达式都会被短路
> def a():
> print("A")
> return False
> def b():
> print("B")
> return True
> def c():
> print("C")
> return False
> def d():
> print("D")
> return True
> def e():
> print("E")
> return True
>
> #False and False and True and False and True ----->False
> if a() and b() and c() and d()and e():
> print("ok-----111")
>
> #2.and,第一个表达式的值为True,则不遵循短路原则
> def a():
> print("A")
> return True
> def b():
> print("B")
> return True
> def c():
> print("C")
> return False
> def d():
> print("D")
> return False
> def e():
> print("E")
> return True
>
> #True and True and False and False and True
> #True and False and False and True ---->A B
> #False and False and True ----->C
> #False
> if a() and b() and c() and d() and e():
> print("ok-----22222")
>
> #3.or:第一个表达式的值为False,则不遵循短路原则
> def a():
> print("A")
> return False
> def b():
> print("B")
> return True
> def c():
> print("C")
> return False
> def d():
> print("D")
> return False
> def e():
> print("E")
> return True
>
> #False or True or False or False or True
> #True or False or False or True ------>A B
> #True
> if a() or b() or c() or d() or e():
> print("ok-----3333")
>
> #4. or:第一个表达式的值为True
> def a():
> print("A")
> return True
> def b():
> print("B")
> return True
> def c():
> print("C")
> return False
> def d():
> print("D")
> return False
> def e():
> print("E")
> return True
>
> #True or True or False or False or True
> #True ----->A
> if a() or b() or c() or d() or e():
> print("ok-----4444")
>
> print("~~~~~~~~~~~~")
>
> #5.and和or混合使用
> def a():
> print("A")
> return True
> def b():
> print("B")
> return True
> def c():
> print("C")
> return False
> def d():
> print("D")
> return False
> def e():
> print("E")
> return True
> def f():
> print("F")
> return False
>
> #True and True and False or False and True or False
> #True and False or False and True or False ---->A B
> #False or False and True or False ---->C
> #False and True or False --------->D
> #False or False ---->F,e被短路
#False
if a() and b() and c() or d() and e() or f():
print("ok------5555")
来源:CSDN
作者:凭栏而望归云处
链接:https://blog.csdn.net/wm123123wm/article/details/103629554