Advertisement

布尔值_Python——转换为布尔值、算数/赋值运算符

阅读量:

在上节中(Python——进制表示与转换)分别详细地介绍了二进制、八进制、十进制和十六进制以及他们之间的转换,在本篇文章开始之前,首先来运行字符串型转整数型函数:

复制代码
    x = '2a0c'print(int(x))
    

若以这样的命令进行运行,那么便会报错:ValueError: invalid literal for int() with base 10: '2a0c',这是因为Python3中默认的数字输出是十进制,而且在”Python——记录4——数据类型2“此公众号中也谈及到,字符串转为整数需要整数规范。可我们还知道在十六进制中,最高位是15,对应着f,也就意味着在十六进制中其实是可以出现a,b,c,d,e,f;如果我们将上例中的x以十六进制转换呢?

复制代码
    print(int(x, 16))
    
d4e3d6b5428e7343f1adb95050d98a51.png

最终输出结果为10764,同样也可以将字符串当做八进制进行转换,比如:print(int(x,8)),道理是一样的。值得注意的是,当做十六进制转换时,最高位只能到f,如果超过f那么也会报错

前几期介绍了,字符串、整数和浮点数之间的转换,其中我们还介绍了布尔值(True/False),那么其他数据类型如何转换成布尔值呢?在进行布尔值转换过程中又有什么注意事项呢?

bool()内置函数 :转换成布尔值

首先看以下几个数字类型的转换

复制代码
    print(bool(520))print(bool(-25))print(bool(134.1))print(bool(0))
    
c9a4e9ab1e2b51516fe34ad3a30c7943.png

可以看出,在数字里,除了数字0转为布尔值为False以外,其他的是整数和浮点数转为布尔值都为True

以上是整数和浮点数转换成布尔值的结果,那么在字符串中转换成布尔值是什么样子呢?

复制代码
    print(bool('hello'))print(bool('False'))print(bool(''))
    
bd4a745d099232c696c63b13050c8cc1.png

可以看出,在字符串中,除了空字符串转换为布尔值为False,其他的都为True;除此以外,None转换成布尔值也为False ,表示空

复制代码
    print(bool(None))
    
6c16924530fc99b32d05af2e19e928d8.png

当然,除了以上基本数据类型中的0,空字符' '/'' '',None转换为布尔值为False以外,高级数据类型中的空列表[ ]、空元组( )、空字典{ } 和空集合set( )(后续会介绍)转换为布尔值也为False;在计算机中,True和False是以1、0进行保存的。

现在我们对布尔值有一个大概的了解,可是布尔值到底有什么用呢?下面我们来看一个简单的例子:

复制代码
    # Aif 9 > 4:    print('hello')# Bif 5:    print('python')# Cif 0:    print('world')
    

在上面的A、B、C三种情况下,哪一个会有结果输出呢?

这就需要用到上面学到的知识点,其中if语句在后面几节将进行讲解。在A中,我们知道9 > 4为真,也就是True,所以计算机会接着向下运行,而输出hello;同样,在B中,数字5转换为布尔值也为True,所以在B情况下计算机也会向下运行,接着输出python;而在C中,数字0转换为布尔值为False,所以计算机将不会再向下运行,从而不会输出world,最终结果如下图所示:
6c395beb731236b46ca6551834a2ee3c.png

以上就是其他数据类型转换为布尔值的相关知识点,下面将介绍计算机中的运算符,在上一期的文章中介绍了算数运算符(四则运算),下面就算术运算符进行一个简单的补充:

算术运算符

补充1:负数会向下取整//

复制代码
    print(-5//2)  # -3
    

补充2:字符串有限度地支持加法运算符

+ :将多个字符串拼接成1个

复制代码
    print('hello' + 'python' + 'world')
    
751b94a419a87f66eafa4535ea6ca366.png

*:用于数字和字符串之间,将一个字符串重复多次

复制代码
    print('hello' * 2)    # hellohello
    

赋值运算符 “="(等号连接变量和传递赋值,只能将右边的数据赋值给左边)

复制代码
    a = b = c = d = 10print(a, b, c, d)
    

10赋值给d,d再将他的值(10)赋值给c,以此类推

复制代码
    m, n = 5, 6print(m, n)  # 结果为5,6
    

这里运用到的叫拆包,即变量的个数和值的个数相一致 ,那么变量与相应的值会一一对应,如果变量的个数与值的个数不一致,这样运行便会报错,当然,不一致也有相应的解决方法

复制代码
    o, p, q = 1, 2, 3, 4, 5, 6  # 直接print(o,p,q)会报错o, *p, q = 1, 2, 3, 4, 5, 6print(o,p,q)*o, p, q = 1, 2, 3, 4, 5, 6print(o,p,q)
    

在p前面加上*号,则表示p的长度可变,此时的变量意味着:o为首位对应值的第一位1;q为末位,对应着值的最后一位6,*p长度可变,那么对应值的第二位至第五位,即长度为4;当然,*号可以放在任意变量上,比如o或者q,原理相同,最终输出结果如下:
0db8adf6b56dd7dccd91a6a07923209a.png

OK,以上介绍了基本数据类型如何转换成布尔值以及对运算符中的算数运算符和复制运算符的相关知识的补充,然而运算符还包含比较运算符、逻辑运算符和位运算符,那么这些运算符又有什么知识点和注意点呢?我们下期再见~

参考资料

https://www.bilibili.com/video/BV1qK411n7gQ?p=30

https://www.bilibili.com/video/BV1qK411n7gQ?p=33

全部评论 (0)

还没有任何评论哟~