一文搞懂 Python 3 中的布尔类型

2024-07-08 1251阅读

介绍

布尔数据类型可以是两个值之一,即True(真)或False(假)。在编程中,我们使用布尔值进行比较,并确定给定程序的控制流程。

一文搞懂 Python 3 中的布尔类型
(图片来源网络,侵删)

布尔值表示与数学逻辑分支相关的真值,这影响计算机科学中的算法。布尔值以数学家乔治·布尔(George Boole)的名字命名,布尔值始终以大写B开头。在Python中,值True和False也始终使用大写的T和F,因为它们在Python中是特殊值。

在本教程中,我们将介绍在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)

当我们运行这个程序时,我们将收到以下输出。

x == y: False
x != y: True
x  y: False
x = y: False

按照数学逻辑,Python 在上述每个表达式中评估:

  • 5(x)是否等于8(y)?False
  • 5是否不等于8?True
  • 5是否小于8?True
  • 5是否大于8?False
  • 5是否小于或等于8?True
  • 5是否不小于或等于8?False

    尽管我们在这里使用的是整数,但我们可以用浮点数值替换它们。

    字符串也可以与布尔运算符一起使用。它们是区分大小写的,除非您使用附加的字符串方法。

    以下是在实践中如何使用布尔运算符比较字符串的方式:

    Sammy = "Sammy"
    sammy = "sammy"
    print("Sammy == sammy: ", Sammy == sammy)
    

    上述程序的输出返回如下。

    Sammy == 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)
    

    运行上面的程序后,我们将得到以下输出。这表明只要字符串是绝对相同的(包括大小写),它们将从布尔逻辑的角度评估为相等。

    Sammy == sammy:  False
    Sammy == also_Sammy:  True
    

    您还可以使用其他比较运算符,包括>和 7) and (2 7和2

    在第二个例子中,print((8 == 8) or (6 != 6)),由于8 == 8评估为真,所以6 != 6的评估为假并不重要,因为使用了or运算符。如果我们使用and运算符,这将评估为假。

    在第三个例子中,print(not(3 1.4) and (True)。这个示例返回False,因为数学语句-0.2 > 1.4为False,(False) and (True)返回False。

    最后,我们有外部表达式:not(False),它评估为True,因此如果我们打印此语句,最终的返回值将是:

    True
    

    逻辑运算符and、or和not评估表达式并返回布尔值。

    真值表

    有很多关于数学逻辑的知识,但我们可以选择性地学习其中一些,以提高我们在编程时的算法思维。

    下面是比较运算符==的真值表,以及逻辑运算符and、or和not的真值表。虽然您可能能够通过推理出它们,但在构建计算机编程中的算法(指令)时,将它们记住也是有帮助的。

    == 真值表

    x==y返回值
    True==TrueTrue
    True==FalseFalse
    False==TrueFalse
    False==FalseTrue

    AND 真值表

    xandy返回值
    TrueandTrueTrue
    TrueandFalseFalse
    FalseandTrueFalse
    FalseandFalseFalse

    OR 真值表

    xory返回值
    TrueorTrueTrue
    TrueorFalseTrue
    FalseorTrueTrue
    FalseorFalseFalse

    NOT 真值表

    notx返回值
    notTrueFalse
    notFalseTrue

    真值表是在逻辑中常见的数学表,对于在计算机编程中构建算法(指令)时,记住或牢记这些表是有用的。

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

    要通过流程控制语句控制程序的流程和结果,我们可以使用条件后跟子句。

    条件评估为True或False的布尔值,表示在程序中做出决定的地方。也就是说,条件会告诉我们某事是否为True或False。

    子句是跟随条件的代码块,并决定程序的结果。也就是说,它是构造“如果x为True,则执行此操作”形式的决策的做这个部分。

    以下代码块展示了比较运算符与条件语句一起工作,以控制Python程序的流程:

    if grade >= 65:                    # 条件
        print("Passing grade")         # 子句
    else:
        print("Failing grade")
    

    这个程序将评估每个学生的成绩是否及格。对于成绩为83的学生,第一个语句将评估为True,并触发Passing grade的打印语句。对于成绩为59的学生,第一个语句将评估为False,因此程序将继续执行与else表达式关联的打印语句:Failing grade。

    因为Python中的每个对象都可以评估为True或False,PEP 8样式指南建议不要将值与True或False进行比较,因为这样做会降低可读性,并且经常会返回意外的布尔值。也就是说,您应该避免在程序中使用 if sammy == True:。相反,比较sammy与另一个非布尔值,该值将返回布尔值。

    布尔运算符通过流程控制语句提供条件,可用于决定程序的最终结果。

    结论

    本教程讨论了属于布尔类型的比较和逻辑运算符,以及真值表和如何在程序流程控制中使用布尔值。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]