了解Python 3中的布尔逻辑

介绍

布尔数据类型可以是两个值中的一个,无论是 TrueFalse 。我们在编程中使用布尔值进行比较和控制程序的流程。 布尔表示与数学逻辑分支相关联的真值,其通知计算机科学中的算法。 命名为数学家乔治·布尔,字布尔总是以一个大写B的值开始 TrueFalse也将永远是一个大写字母T和F分别,因为他们是在Python特殊值。 在本教程中,我们将讨论您需要了解布尔运算的基本知识,包括布尔比较和逻辑运算符,以及真值表。

比较运算符

在编程中,比较运算符用于比较值并向下计算为True或False的单个布尔值。 下表显示了布尔比较运算符。
操作符 说明
== 等于
!= 不等于
< 少于
> 大于
<= 小于或等于
>= 大于或等于
要理解这些操作符的工作原理,让我们在Python程序中将两个整数赋给两个变量:
x = 5
y = 8
我们知道,在这个例子中,由于 x具有的值 5 ,它是大于 y其具有的值 8 。 使用这两个变量及其相关值,让我们通过上表中的运算符。在我们的程序中,我们将要求Python打印每个比较运算符是True还是False。为了帮助我们和其他人更好地理解这个输出,我们将Python打印一个字符串来告诉我们它的评价。
x = 5
y = 8

print("x == y:", x == y)
print("x != y:", x != y)
print("x < y:", x < y)
print("x > y:", x > y)
print("x <= y:", x <= y)
print("x >= y:", x >= y)
Outputx == y: False
x != y: True
x < y: True
x > y: False
x <= y: True
x >= y: False
根据数学逻辑,在上面的每个表达式中,Python已经评估:
  • 为5( x )等于8( y )? False
  • 5不等于8吗?True
  • 是5小于8吗?True
  • 是否大于8?False
  • 是否小于等于8?True
  • 5不小于或等于8?False
虽然我们在这里使用整数,我们可以用float值来替换它们。 字符串也可以与布尔运算符一起使用。除非你使用一个额外它们是区分大小写 字符串的方法 。 我们可以看看字符串在实践中如何比较:
Sammy = "Sammy"
sammy = "sammy"

print("Sammy == sammy: ", Sammy == sammy)
OutputSammy == sammy:  False
字符串 "Sammy"上面不等于字符串 "sammy" ,因为它们不是完全相同的; 一个人开始用大写 S和其他与小写 s 。 但是,如果我们加上分配的值另一个变量 "Sammy" ,那么他们将评估等于:
Sammy = "Sammy"
sammy = "sammy"
also_Sammy = "Sammy"

print("Sammy == sammy: ", Sammy == sammy)
print("Sammy == also_Sammy", Sammy == also_Sammy)
OutputSammy == sammy:  False
Sammy == also_Sammy:  True
您还可以使用其他操作符相比,包括 ><来比较两个字符串。 Python将使用字符的ASCII值以字母顺序比较这些字符串。 我们还可以使用比较运算符计算布尔值:
t = True
f = False

print("t != f: ", t != f)
Outputt != f:  True
上面的代码块评估的 True不等于 False 。 请注意这两个操作符之间的差异 ===
x = y   # Sets x equal to y
x == y  # Evaluates whether x is equal to y
首先, =是赋值运算符,这将设置为另一个值。 第二, ==是比较操作符将评估两个值是否相等。

逻辑运算符

有三个逻辑运算符用于比较值。他们计算表达式下降到布尔值,要么返回 TrueFalse 。 这些运算符是 andor ,与 not和在下面的表中定义。
操作符 说明 例子
and 如果两者都是真的 x and y
or 如果至少一个为真,则为真 x or y
not 仅当为假时为真 not x
逻辑运算符通常用于评估两个或更多表达式是真还是不真。例如,它们可以被用来确定该等级传递 and该学生在使用过程中注册的,如果这两种情况下都为真那么学生将被分配在系统中一个档次。 另一个例子是,以确定用户是否是基于他们是否有商店信用卡 or已在过去6个月的购买网店的有效活跃客户。 为了理解逻辑运算符的工作原理,让我们评估三个表达式:
print((9 > 7) and (2 < 4))  # Both original expressions are True
print((8 == 8) or (6 != 6)) # One original expression is True
print(not(3 <= 1))          # The original expression is False
OutputTrue
True
True
在第一种情况下, print((9 > 7) and (2 < 4))二者 9 > 72 < 4以评估为真,因为所需要的 and正在使用的运算符。 在第二种情况下, print((8 == 8) or (6 != 6))8 == 8评价为真,但它并没有区别了 6 != 6计算为False,因为 or操作符用过的。 如果我们使用了 and操作符,这将评估为False。 在第三种情况下, print(not(3 <= 1))not操作符否定了假值 3 <=1的回报。 让我们将浮点数替换为整数,并以False求值为目标:
print((-0.2 > 1.4) and (0.8 < 3.1)) # One original expression is False
print((7.5 == 8.9) or (9.2 != 9.2)) # Both original expressions are False       
print(not(-5.7 <= 0.3))             # The original expression is True
在上面的例子中,
  • and必须至少有一个假表达式计算为False,
    • or必须有两个表达式的计算为False,
    • not一定有它的内在表现为TRUE,新的表达,以评估为False。
如果上述结果似乎不清楚你的,我们将通过一些 真值表下面让你加快速度。 您也可以使用编写复合语句 andornot
not((-0.2 > 1.4) and ((0.8 < 3.1) or (0.1 == 0.1)))
让我们来看看最内层的表达式首先: (0.8 < 3.1) or (0.1 == 0.1)此表达式的计算结果为True,因为两个数学语句都为True。 现在,我们可以把返回值 True ,并与下一内部表达结合起来: (-0.2 > 1.4) and (True) 。 此示例返回 False ,因为数学陈述 -0.2 > 1.4为False,和 (False) and (True)返回False。 最后,我们有表达外: not(False) ,计算结果为真,因此最终返回值,如果我们打印这句话的是:
OutputTrue
逻辑运算符 andor ,而 not计算表达式并返回布尔值。

真值表

有很多要了解数学的逻辑分支,但我们可以选择性地学习一些,以提高我们的算法思维在编程。 下面是比较操作符真值表 == ,并且每个逻辑运算符 andor ,和 not 。虽然你可能能够推理出来,但也有助于记住他们,因为这可以使你的编程决策过程更快。

== 值表

X == y 返回
True == True True
True == False False
False == True False
False == False True

and 值表

X and y 返回
True and True True
True and False False
False and True False
False and False False

or 值表

X or y 返回
True or True True
True or False True
False or True True
False or False False

NOT 值表

not X 返回
not True False
not False True
真值表是在逻辑中使用的公共数学表,并且在构建计算机编程中的算法(指令)时记住或记住是有用的。

使用布尔运算符进行流控制

为了控制程序的流程控制语句的形式流和结果,我们可以使用 条件 。 一个 条件计算下来的真或假布尔值,呈现在这里判定在程序中提出的观点。也就是说,一个条件会告诉我们,如果某个值为True或False。 后面的 条件和规定程序的结果代码块。 下面的代码块示出了比较运算符与条件语句一起工作以控制Python程序的流程的示例:
if grade >= 65:                 # Condition
    print("Passing grade")      # Clause

else:
    print("Failing grade")
这个程序将评估每个学生的成绩是通过还是失败。在与83一年级学生的情况下,第一条语句将计算为 True ,并打印语句 Passing grade将被触发。 在与59一年级学生的情况下,第一条语句将计算为 False ,所以程序将转移到执行print语句绑在 else表情: Failing grade 。 因为在Python中的每一个对象都可以进行评估,以真或假的 PEP 8指南建议针对值进行比较,以 TrueFalse ,因为它的可读性和经常会返回一条意外的布尔值。 也就是说,你应该 避免使用 if sammy == True:在你的程序。 相反,比较 sammy到另一个非布尔值,它会返回一个布尔值。 布尔运算符表示可用于通过流控制语句来决定程序的最终结果的条件。

结论

本教程通过比较和逻辑运算符属于布尔类型,以及真值表和使用布尔值进行程序流控制。 您可以了解更多关于我们的“其他数据类型 了解数据类型 ”的教程,并且可以阅读我们的“有关条件语句 如何写条件语句教程。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏