在这一个系列的文章里,我尽可能的覆盖更多的读者。所以可能对于一些读者来说,可能内容会过于简单,但是也一定会保证整篇文章有可读性,也就是说对于这些有一定基础的同学来说,也会能学到一些知识点。话不多说,带大家来了解操作符。
一般来说,我们一条语句由操作符和操作数组成。比如a = 2 + 1这条语句中“=”和“+”就是操作符,而“2”和“1”则为操作数。
我们来看一下Python里有哪一些操作符,基本上Python里的操作符可分为如下几类。
算术操作符
比较操作符
赋值操作符
逻辑操作符
位操作符
成员操作符
身份操作符
这些操作符基本上贯穿在Python的程序里,不像一些其他的语言,某些操作符使用的频率比较低,基本上Python的这些操作符都是我们会经常用到的,从这点上来讲,Python是非常的实用主义,下面我们分别来看看每一种操作符。
算术操作符
算术操作符其实比较简单,下面列出操作符、解释以及示例。
a = 2, b = 7
+ 操作符左右两边相加 a+b=9
- 操作符的左边减右边 a–b=-5
* 操作符的两边做乘法 a*b=14
/ 操作符左边除以右边 b/a=3.5
% 操作符左对右取余数 b%a=1
** 操作符左边的右次幂 a**b=128
// 操作符左除以右取整 b//a=3
比较操作符
比较操作符也叫关系操作符,它比较操作符两端的操作数,决定它们之间的关系。接下来也来列一下比较运算符。
a = 2, b = 7
== 左右相等返回为真 (a==b)返回False
!= 左右不等返回为真 (a!=b)返回True
> 左大于右返回为真 (a>b)返回False
< 左小于右返回为真 (a<b)返回True
>= 左大于等于右为真 (a>=b)返回False
<= 左小于等于右为真 (a<=b)返回True
赋值操作符
我们继续来看赋值操作符的列表。
仍然假定 a = 2, b = 7
= 右边的结果赋值给左边 c=a+b结果为9
+= 左边加右边后赋给左边 b+=a结果为9
-= 左边减右边后赋给左边 b-=a的结果为5
*= 左边乘右边后赋给左边 b*=a结果为14
/= 左边除以右边赋给左边 b/=a结果为3.5
%= 左边对右边取余给左边 b%=a结果为1
**= 左边的右次幂赋给左边 b**=a结果为49
//= 左除以右取整赋给左边 b//=a结果为3
位操作符
假设a = 2和b = 7是以二进制的形式来表示的,如下:
a = 0000 0010
b = 0000 0111
位操作符都是按每一个二进制位来运算的。我们接下来列出位操作符和其解释,为方便大家理解我们将结果表示为二进制的形式:
&按位与 两边为1则结果为1 a&b=00000010
| 按位或 一个为1则结果为1 a|b=00000111
^ 位异或 两边不同则结果为1 a^b=00000101
~ 位取反 按位取为原值的反值 ~a=11111101
<< 左移 将所有位左移 a<<2=00001000
>> 右移 将所有位右移 a>>2=00000000
逻辑操作符
逻辑操作符其实和位操作符的基本逻辑是一样的,但是它的结果只返回True和False。
我们仍然假定a = 2, b = 7。
and 逻辑与 左右都为真时结果为真 (a>2) and (b>2)结果为False
or 逻辑或 左右有一个为真结果为真 (a>2) and (b>2)结果为True
not 逻辑非 原值为False则结果为True not (a>2)结果为True
成员操作符
这个其实也非常的常用,我们在使用列表、元组和字典的时候,如果我们想知道一个成员是否在列表、元组或者字典中,那么我们就可以用成员操作符。
成员操作符有:
in 在序列中找到了则为True
not in 在序列中未找到则为False
下面我们来看一下具体的例子:
a = 'string1'
b = ['string1', 'string2', 'string3']
if a in b:
print(a, ' is in ', b)
else:
print(a, ' is not in ', b)
同样在元组和字典中,也可以非常方便的使用成员操作符。实际在写Python程序的时候,这可是用的非常之多的。
身份操作符
看起来这是一个有身份的操作符,不,它只是一个有身份证的操作符。
is 如果两边的东西指向同一个东西则为True
is not 如果两边的东西不指向同一个东西则为True
我们来看两个例子吧:
a = ['a', 'b', 'c']
b = a
c = ['a', 'b', 'c']
if b is a:
print('b is a!')
else:
print('b is not a!')
if c is a:
print('c is a!')
else:
print('c is not a!')
我们会发现其运行结果为:
b is a!
c is not a!
事实上,虽然c和a是相同的,但是它们在内存中并不指向同一地址,也就是说它不是同一个东西。那么现在大家应该明白is和is not的用法了,它们要求左右两边事实上就是一个东西。
操作符的优先级
1 ** 幂操作符
2 ~ + - 按位取反和一元加减操作符
3 * / % // 乘除取余和整除
4 + - 加减操作符
5 >> << 左移和右移
6 & 按位与
7 ^ | 异或和按位或
8 <= < > >= 除了等于和不等于外的比较操作符
9 == != 等于和不等于
10 = %= /= //= -= += *= **= 赋值操作符
11 is is not 身份操作符
12 in not in 成员操作符
13 not or and 逻辑操作符
到这里,我们基本上对所有的操作符有了一个认识,其实也很简单,大家动手运行一下就有感觉了,很多书里会把operators翻译成运算符,一是由于我在学习计算机科学知识的时候没怎么读过中文版的书籍,二是在基于英文原本的意思来说我更倾向于翻译为操作符。不习惯之处,还请包涵!接下来我们会继续这个Python的基础系列,旨在影响和帮助无基础或者跨行业的人群学习Python,后续的目标其实是让大家能够在掌握了Python的基础上进入到人工智能的领域,尤其是深度学习,其实它已经很简单,大家都能学会!
人工智能与深度学习做量化请关注:AI量化(https://t.zsxq.com/RvfY37y) 星球限时免费,如需加入,请私信我获得免费邀请码!
零基础学习Python与深度学习应用请关注星球:Python与深度学习 https://t.zsxq.com/bUFayZ3
微信公众号:QTechAI
网友评论