说句心里话apython_【人生苦短,我学 Python】基础篇——运算符(Day6)

大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱编程、热爱分享! 这博客是我对学习的一点总结与思考。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~

我的博客地址为:【AI 菌】的博客

我的Github项目地址是:【AI 菌】的Github

前言: 本专栏在保证内容完整性的基础上,力求简洁,旨在让初学者更快地入门Python。这个Python学习专栏我打算分三个阶段:基础知识、进阶知识、实战训练。这将是一套完整、高效、循序渐进的Python系列讲解,您可以当做Python学习的入门教程。

我们都知道,在数学中进行各类计算需要运算符号,比如常用的加、减、乘、除等。同样地,在Python编程中,有时需要处理计算不同的数据、逻辑关系等,这时候对不同运算符的掌握就显得尤为重要了。这一讲就来聊聊Python中必须知道的七大类运算符和运算优先级。

一、算术运算符

算术运算符,可以理解为进行算术计算的运算符。在Python中,有下列这7种常用的算术运算符:

运算符

Value

+

相加

-

相减

*

相乘

/

相除

%

取模,返回余数

**

幂,返回x的y次幂

//

整除,向下取整

二、比较运算符

比较运算符用来比较两个对象的大小,返回True或者False。常用的比较运算符如下:

运算符

Value

==

比较两对象是否相等

!=

比较两个对象是否不相等

>

返回x是否大于y

<

返回x是否小于y

>=

大于或等于

<=

小于或等于

三、赋值运算符

在Pyhton中,最简单的赋值运算符是=,注意要和前面说到的关系运算符==区分。

以下是Pyhton中常用的(复合)赋值运算符:

运算符

Value

=

赋值运算符

+=

a += i 等效于 a = a + i

-=

a -= i 等效于 a = a - i

*=

a *= i 等效于 a = a * i

/=

a /= i 等效于 a = a / i

%=

a %= i 等效于 a = a % i

**=

a **= i 等效于 a = a ** i

//=

a //= i 等效于 a = a // i

:=

可在表达式内部为变量赋值,是Python3.8 版本新增运算符。

四、位运算符

位运算符是把数字看作二进制来进行计算的。下面是一些常用的位运算符:

运算符

Value

&

按位与

|

按位或

^

异或:当两对应的二进位相异时,结果为1

~

按位取反

<<

左移运算符,左移一位相当于乘以2

>>

右移运算符,右移一位相当于除以2

下面举例演示了一下位运算符的操作:

a = 5 # 二进制形式为:0101

b = 10 # 二进制形式为:1010

print("a&b =", a&b)

print("a|b =", a|b)

print("a^b =", a^b)

print("a<<1 =", a<<1)

print("b>>1 =", b>>1)

输出:

位运算符是把数字看作二进制来进行计算的,因此:

a & b = (0101) & (1010) = 0000,转化为10进制则为0

a | b = (0101) | (1010) = 1111,转化为10进制则为15

a ^ b = (0101) ^ (1010) = 1111,转化为10进制则为15

a<<1,a左移一位,相当于乘以2,所以结果为10

b>>1,b右移一位,相当于除以2,所以结果为5

最后,介绍一下按位取反操作 ~:对数据的每个二进制位取反,即把1变为0,把0变为1。下面举一个简单例子:

a = 5 # 二进制表示为: 0 0101

b = -6 # 二进制表示为: 1 0110

print(~a)

print(~b)

结果:

这里需要特别注意:不是直接对每个二进制位取反,而是先要转为补码,再取反计算,最后再转为原码,比如对于求~a:

先求a的补码,是其本身0 0101

然后按位取反得,1 1010

最后再转原码得,1 0101 + 1 = 1 0110,十进制表示就是-6

同样,对于求~b:

先求b的补码,1 1001 +1 = 1 1010

然后按位取反得,0 0101

最后再转原码得,0 0101,十进制表示就是5

原码与补码的转换规则:正数的补码是其本身,负数的补码,符号位不变,数值位取反加1

当然,对于取反操作~,你也可以直接记规律: ~x = -x -1

五、逻辑运算符

Python语言支持逻辑运算符,常用的逻辑运算符有以下三种:

运算符

逻辑表达式

描述

and

x and y

布尔"与" :如果x、y存在假值,返回x;如果x、y都不是假值,则返回y

or

x or y

布尔"或" :如果x、y存在真值,返回x;如果x、y都不是真值,则返回y

not

not x

布尔"非" : 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

在Python里面,0、’ ’、[]、()、{}、None均为假,其它任何东西都为真。在此基础上,下面举例演示了一下逻辑运算符的操作:

a = 5

b = 0

print("a and b =", a and b)

print("a or b =", a or b)

print("not b =", not b)

结果:

六、成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

运算符

Value

in

如果在指定的序列中找到值返回 True,否则返回 False。

not in

如果在指定的序列中没有找到值返回 True,否则返回 False。

下面举例演示了一下成员运算符的操作:

a = 5

b = 0

list = [1, 2, 3, 4, 5, 6]

if a in list:

print("a is in list !")

else:

print("a is not in list !")

if b not in list:

print("b is not in list !")

else:

print("b is in list !")

结果:

七、身份运算符

身份运算符用于比较两个对象的存储单元。

运算符

Value

is

判断两个标识符是不是引用自同一个对象

is not

判断两个标识符是不是引用自不同对象

函数 id() 用于获取对象内存地址。下面举例演示了一下身份运算符的操作:

a = 5

b = 5

print("id(a) =", id(a), "id(b) =", id(b))

if a is b:

print("a,b是引自同一个对象的变量\n")

else:

print("a,b是引自不同对象的变量\n")

b = 10 # 修改b

print("id(a) =", id(a), "id(b) =", id(b))

if a is b:

print("a,b是引自同一个对象的变量")

else:

print("a,b是引自不同对象的变量")

结果:

八、运算优先级

下表按从高到低的优先级顺序列出了所有运算符:

运算符

项目

**

算术运算符

~ + -

三个符号分别表示:按位反转、一元加号(正号)、一元减号(负号)

* / % //

算术运算符

+ -

算术运算符

>> <<

位运算符

&

位运算符

^ |

位运算符

<= < > >=

比较运算符

== !=

比较运算符

= %= /= //= -= += *= **=

赋值运算符

is is not

身份运算符

in not in

成员运算符

not and or

逻辑运算符

本文同步分享在 博客“AI 菌”(CSDN)。

如有侵权,请联系 [email protected] 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

你可能感兴趣的:(说句心里话apython)