• 技术文章 >常见问题 >Python常见问题

    如何理解Python中的None

    silencementsilencement2019-10-25 16:15:22原创5622

    Python中的None是一个经常被用到的知识点,但是很多人对于None的内涵把握的还是不够精确,今天就和我一起好好理解下这个小知识点吧。

    1.None表示空,但它不等于空字符串、空列表,也不等同于False,通过下面的代码进行验证。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    a = ''

    b = False

    c = []

     

    print(a==None)   #比较值

    print(b==None)

    print(c==None)

     

    print(a is None)

     

    False

    False

    False

    False

    2.在写代码的过程中,会对某些代码进行判空操作。比如有一个变量a,那么if not a和if a is None两者有区别吗?如果说没有区别,那么不管a为何值时,这两个判断语句会返回相同的结果,但事实是这样吗?一起看下面这段代码,体会一下对None的判空操作

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    def fun():

        return None

     

    a =fun()

    if not a:   #逻辑运算

        print('S')

    else:

        print('F')

     

    if a is None:

        print('S')

    else:

        print('F')

     

     

    S

    S

    运行代码发现,结果是一样的,这是由于我们调用函数时,会返回None,那么此时两个判断语句返回的结果是一样的,但是如果我们将a的值换成一个空列表,会出现什么结果呢?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    def fun():

        return None

     

    a = []

    if not a:   #逻辑运算

        print('S')

    else:

        print('F')

     

    if a is None:

        print('S')

    else:

        print('F')

     

    S

    F

    运行结果,发现会打印不一样的值。那么这是为什么呢?对于not a它的意思相当于True,所以会打印出S,而a is None是比较运算,它们不属于同一种类型,因此会出现不一样的打印值。更多学习内容,请点击Python学习网。

    专题推荐:none
    上一篇:Python的多态是什么 下一篇:Python的布尔类型是什么

    相关文章推荐

    • Python3中真真假假True、False、None等含义详解• python函数如何不返回none• Python none和0区别是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网