前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 运算符

Python 运算符

作者头像
忆想不到的晖
发布2021-12-06 20:09:15
6230
发布2021-12-06 20:09:15
举报
文章被收录于专栏:huihui

运算符

运算符 用于执行程序代码运算,会针对一个以上操作数项目来进行运算。 例如:2+3,其 操作数23,而 运算符 则是 +

Python 运算符

点击下面链接即可跳转到对应知识点位置。

IPython 使用介绍

IPython 是一个 Python 的交互式 Shell ,比默认的 Python Shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。 这里将使用 IPython 交互式解释器来进行 Python 语法的测试。

文字操作系统与外部最主要的接口就叫做 Shell。Shell 是操作系统最外面的一层。Shell 管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。

Shell 俗称壳(用来区别于核),是指为使用者提供操作界面的软件***(Command Interpreter,命令解释器)***,类似于 Windows 中的 cmdPowerShell。它接收用户输入的命令,然后调用相应的应用程序。

安装 IPython

打开 CMD 输入如下指令,即可安装 IPython

代码语言:javascript
复制
pip install ipython

pip (python install package)Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。在安装Python解释器时,就给用户配置好了,可以直接使用。

使用 IPython

使用 Win + R 快捷键调出运行窗口输入 ipython 或者在 CMD 窗口输入 ipython 即可进入 ipython 解释器

然后输入相应的 Python 语法就会得到对应的解释结果。如下演示

ipython初步使用
ipython初步使用

优点

  • 适合于学习/验证 Python 语法或者局部代码

缺点

  • 代码不能保存
  • 不适合运行太大的程序

算术运算符

运算符

描述

实例

+

3 + 6

-

10 - 5

*

10 * 20

/

10 / 20

//

取整除

返回除法的整数部分(商) 9 // 2 输出结果 4

%

取余数

返回除法的余数 9 % 2

**

又称次方、乘方,2 ** 3

IPython 测验

加减算术运算符测验

代码语言:javascript
复制
In [15]: # 加法运算

In [16]: a = 3

In [17]: b = 6

In [18]: c = a + b

In [19]: c
Out[19]: 9

In [20]: a + b
Out[20]: 9

In [21]: # 减法运算

In [22]: a = 10

In [23]: b = 5

In [24]: a - b
Out[24]: 5

乘除算术运算符测验

代码语言:javascript
复制
In [25]: # 乘法运算

In [26]: a = 10

In [27]: b = 20

In [28]: a * b
Out[28]: 200

In [29]: 10 * 20
Out[29]: 200
    
In [30]: # 除法运算

In [31]: 10 / 20
Out[31]: 0.5

In [32]: # 取整除

In [33]: 10 / 3  # 普通除
Out[33]: 3.3333333333333335

In [34]: 10 //3  # 整除
Out[34]: 3    

取余、幂算术运算符测验

代码语言:javascript
复制
In [35]: # 取余数

In [36]: 10 % 3
Out[36]: 1

In [37]: # 幂运算

In [38]: 2 ** 3
Out[38]: 8

In [39]: 2 ** 10
Out[39]: 1024

比较运算符

假设 a=20b=30

运算符

描述

实例

==

等于

(a == b) 返回 False

!=

不等于

(a != b) 返回 True

>

大于

(a > b) 返回 False

<

小于

(a < b) 返回 True

>=

大于等于

(a >= b) 返回 False

<=

小于等于

(a <= b) 返回 True

IPython 测验

等于、不等于比较运算符测验

代码语言:javascript
复制
In [41]: # 等于比较运算符

In [42]: a = 20

In [43]: b = 30

In [44]: a == b
Out[44]: False

In [45]: # 不等于

In [46]: a != b
Out[46]: True

大于、小于比较运算符测验

代码语言:javascript
复制
In [47]: # 大于

In [48]: a > b
Out[48]: False

In [49]: # 小于

In [50]: a < b
Out[50]: True

大于等于、小于等于比较运算符测验

代码语言:javascript
复制
In [51]: # 大于等于

In [52]: a >= b
Out[52]: False

In [53]: # 小于等于

In [54]: a <= b
Out[54]: True

赋值运算符

运算符

描述

实例

=

简单的赋值运算符

c = a + b 将 a + b 的运算结果赋值为 c

+=

加法赋值运算符

c += a 等效于 c = c + a

-=

减法赋值运算符

c -= a 等效于 c = c - a

*=

乘法赋值运算符

c *= a 等效于 c = c * a

/=

除法赋值运算符

c /= a 等效于 c = c / a

//=

取整除赋值运算符

c //= a 等效于 c = c // a

%=

取 模 (余数)赋值运算符

c %= a 等效于 c = c % a

**=

幂赋值运算符

c **= a 等效于c = c** a

IPython 测验

等于、加等于、减等于赋值运算符测验

代码语言:javascript
复制
In [56]: # 赋值运算符测验

In [57]: # 等于赋值运算

In [58]: a = 10

In [59]: b = 20

In [60]: c = a + b

In [61]: c
Out[61]: 30

In [62]: # 加等于

In [63]: a = 1

In [64]: a += 1

In [65]: a
Out[65]: 2

In [66]: # 减等于

In [67]: a = 10

In [68]: a -= 1

In [69]: a
Out[69]: 9

乘等于、除等于、取整除赋值运算符测验

代码语言:javascript
复制
In [70]: # 乘等于

In [71]: a = 10

In [72]: a *= 5

In [73]: a
Out[73]: 50

In [74]: # 除等于

In [75]: a = 100

In [76]: a /= 10

In [77]: a
Out[77]: 10.0

In [78]: # 取整除赋值运算

In [79]: a = 10

In [80]: a /= 3  # 普通除等于

In [81]: a
Out[81]: 3.3333333333333335

In [84]: a = 10

In [85]: a //= 3  # 取整除

In [86]: a
Out[86]: 3

取余数、幂赋值运算符测验

代码语言:javascript
复制
In [87]: # 取余数赋值运算

In [88]: a = 10

In [89]: a %= 3

In [90]: a
Out[90]: 1

In [91]: # 幂赋值运算

In [92]: a = 2

In [93]: a **= 3

In [94]: a
Out[94]: 8

就是在算术运算符基础上在进行赋值运算

逻辑运算符

运算符

逻辑表达式

描述

and

x and y

布尔"与" - 要两边表达式都满足才返回 True,否则 False

or

x or y

布尔"或" - 其中一边表达式满足就返回 True,两边都不满足才 False

not

not x

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

and 逻辑运算符 IPython 测验

代码语言:javascript
复制
In [100]: # and 逻辑运算符测验
In [101]: age = 21

In [102]: age > 18 and age < 30
Out[102]: True

In [103]: age > 30 and age < 18
Out[103]: False

In [108]: age < 18 and age == 21
Out[108]: False

使用 and 逻辑运算符的时候,如果左边表达式不满足条件的话,将不会进行右边的表达式运算

代码语言:javascript
复制
In [115]: a = 21

In [116]: a > 18 and a == 1 / 0
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-116-9ea6c0ccc2d0> in <module>
----> 1 a > 18 and a == 1 / 0

ZeroDivisionError: division by zero

In [117]: a < 18 and a == 1 / 0
Out[117]: False

这样以一个除0错误信息来证明,

代码语言:javascript
复制
a = 21
a > 18 and a==1/0

首先左边表达式 a > 18 符合条件然后进行右边表达式运算 a == 1/0,由于被除数不能为 0 因此Python解释器报错 division by zero

代码语言:javascript
复制
a = 21
a < 18 and a==1/0

首先左边表达式 a < 18 不满足条件,由于又是 and 运算符,不会进行右边 a == 1/0 运算,因此不会报错并方 False

or 逻辑运算符 IPython 测验

代码语言:javascript
复制
In [118]: # or 逻辑运算符测验
In [119]: score = 75

In [120]: score > 60 or socre < 80
Out[120]: True

In [121]: score > 60 or socre > 90
Out[121]: True

In [123]: score > 100 or score > 60
Out[123]: True

In [124]: score < 60 or score > 100
Out[124]: False

使用 or 逻辑运算符时,如果左边表达式满足条件的话,将不会进行右边的表达式运算

还是以除0错误来展示:

代码语言:javascript
复制
In [126]: score = 95

In [127]: score > 90 or score == score / 0
Out[127]: True

In [128]: score < 90 or score == score / 0
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-128-fd77ee8475bb> in <module>
----> 1 score < 90 or score == score / 0

ZeroDivisionError: division by zero

In [129]:

not 逻辑运算符 IPython 测验

代码语言:javascript
复制
In [137]: a = 100

In [138]: a == 100
Out[138]: True

In [139]: a == 10
Out[139]: False

In [140]: not a == 100
Out[140]: False

In [141]: not a == 10
Out[141]: True

not 逻辑运算符就是起取反作用,表达式成立就 False, 不成立则 True

位运算符

按位运算符是把数字看作二进制来进行计算的,Python中有如下表位运算符

运算符

描述

&

按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

|

按位或运算符:只要对应的二个二进位有一个为 1 时,结果位就为1。

^

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

~

按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1

<<

左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。

>>

右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数

IPython 测验

我们默认输入的数字是10进制,为了让测验更加明了,因此要借助 bin(),将10进制转换成2进制

bin() 函数的简单使用

代码语言:javascript
复制
In [6]: bin(10)
Out[6]: '0b1010'

In [7]: bin(8)
Out[7]: '0b1000'

0b 就代表是二进制

按位与、按位或,位运算符测验

代码语言:javascript
复制
In [0]: # 按位与 &
In [1]: bin(10)
Out[1]: '0b1010'

In [2]: bin(8)
Out[2]: '0b1000'

In [3]: a = 10

In [4]: b = 8

In [5]: a & b
Out[5]: 8

In [6]: bin(a & b)
Out[6]: '0b1000'
    
In [7]: # 按位或

In [8]: a | b
Out[8]: 10

In [9]: bin(a | b)
Out[9]: '0b1010'

按位异或、按位取反,位运算符测验

代码语言:javascript
复制
In [10]: # 按位异或

In [11]: a = 10

In [12]: b = 8

In [13]: bin(a)
Out[13]: '0b1010'

In [14]: bin(b)
Out[14]: '0b1000'

In [15]: a ^ b
Out[15]: 2

In [16]: bin(a ^ b)
Out[16]: '0b10'

In [17]: # 按位取反

In [18]: a = 13

In [19]: bin(a)    # 0000 1101
Out[19]: '0b1101'

In [20]: bin(~a)   # 1111 1110 带符号位的2进制补码呈现
Out[20]: '-0b1110'

In [21]: ~a
Out[21]: -14

按位取反后,由于保存的是二进制补码形式,因此就牵扯到了二进制的原、反、补知识点

原码表示法 是一种最简单的机器数表示法,其最高位为符号位,符号位为 0 时表示该数为,为 1 时则表示为。例如:[x]原 = 0000 0001,其十进制为 1,[x]原 = 1000 0001,十进制则为 -1。

原、反、补转换技巧

  • 正数原反补相同
  • 负数的补码等于其反码加1,转反码时符号位不变,其余按位取反
  • 补码的补码是原码

因此当 a = 13 时,这里以 8位 表示一个二进制

  • 13二进制为:0000 1101
  • 13按位取反后为:1111 0010,这是带符号位的二进制补码

因此要将 1111 0010 补码转换成原码,假设 [x]补码1111 0010 ,根据补码的补码就是原码就可得出

代码语言:javascript
复制
[x]补 = 1111 0010
[x]原 = 1000 1101 + 1  # 1是十进制,换成8位2进制为 0000 0001,2进制运算是逢2进1
[x]原 = 1000 1110

**[x]补 = 1111 0010 ** 得出 [x]原 = 1000 1110,符号位为 1 则是负数因此换成十进制则为 -14。推导结果与测验结果一致。

左移动、右移动,位运算符测验

代码语言:javascript
复制
In [27]: # 左移 <<
In [27]: a = 10

In [28]: bin(a)
Out[28]: '0b1010'    # 0000 1010

In [29]: bin(a << 2)
Out[29]: '0b101000'  # 0010 1000

In [30]: a << 2
Out[30]: 40

In [31]: # 右移 >>

In [32]: b = 7

In [33]: bin(7)		
Out[33]: '0b111'    # 0000 0111

In [34]: bin(b >> 2)
Out[34]: '0b1'      # 0000 0001 

In [35]: b >> 2
Out[35]: 1

成员运算符

成员运算符用于 测试 序列中是否包含指定的 成员

运算符

描述

in

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

not in

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

IPython 测验

代码语言:javascript
复制
In [37]: 3 in (1, 2, 3)
Out[37]: True

In [38]: 3 not in (1, 2, 3, 4, 5)
Out[38]: False

In [39]: 0 not in (1, 2, 3)
Out[39]: True

身份运算符

运算符

描述

is

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

is not

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

IPython 测验

代码语言:javascript
复制
In [40]: a = 20

In [41]: b = 20

In [42]: a is b
Out[42]: True

In [43]: a is not b
Out[43]: False

In [44]: a is not None
Out[44]: True

is== 区别:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

代码语言:javascript
复制
In [46]: a = [1, 2, 3]

In [47]: b = a

In [48]: a is b
Out[48]: True

In [49]: a == b
Out[49]: True

In [50]: c = [1, 2, 3]

In [51]: a is c
Out[51]: False

In [52]: a == c
Out[52]: True

Python运算符优先级

以下表格的算数优先级由高到最低顺序排列

运算符

描述

**

指数 (最高优先级)

~ + -

按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

* / % //

乘,除,求余数和取整除

+ -

加法减法

>> <<

右移,左移运算符

&

按位与 运算符

^ |

按位异或、按位或运算符

<= < > >=

比较运算符

== !=

等于运算符

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

赋值运算符

is is not

身份运算符

in not in

成员运算符

not and or

逻辑运算符

运算符优先级,不用全记下,自己在使用过程中如果不知道优先级可以使用 () 来提升运算符优先级。

代码语言:javascript
复制
In [53]: a = 5

In [54]: b = 6

In [55]: c = 10

In [56]: a + b * c
Out[56]: 65

In [57]: (a + b) * c
Out[57]: 110
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/06/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 运算符
  • Python 运算符
  • IPython 使用介绍
    • 安装 IPython
      • 使用 IPython
      • 算术运算符
      • 比较运算符
      • 赋值运算符
      • 逻辑运算符
      • 位运算符
      • 成员运算符
      • 身份运算符
      • Python运算符优先级
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档