登录

运算符

运算符是指能将数值或变量进行相互运算的符号。比如说表达式 4 + 5 = 9。这里,4 和 5 称为操作数,+ 称为运算符。

Python 基础运算符有

  • 算术运算符

  • 比较(关系)运算符

  • 赋值运算符

  • 逻辑运算符

算术运算符

提示

注意

特别注意普通除法/的商是有小数的,而整除//的商是没有小数的。

运算符

描述

示例

+ 加法

两数相加

5 + 2 是 7

- 减法

两数相减

5 – 2 是 3

* 乘法

两数相乘

5 * 2 是 10

/ 除法

两数相除

5 / 2 是 2.5

% 取模

两数相除后只取余数部分

5 % 2 是 1

** 幂运算

左操作数为底,右操作数为幂

5 ** 2 是 25

// 整除

两数相除后只取商的整数部分

5 // 2 是 2

a = 5
b = 2
print(a+b) #输出7
print(a-b) #输出3
print(a*b) #输出10
print(a/b) #输出2.5
print(a%b) #输出1
print(a**b) #输出25
print(a//b) #输出2
运算符
准确率:93.94%
填空题
ID:18
a = 10
b = 3
print(a+b,a%b,a//b,a**b)

程序输出的是

[0/1]

比较(关系)运算符

提示

注意

在程序里,一个等号=是赋值,把右边的值赋予给左边的变量,两个等号==是判断是否相等,是一个运算符,会得到 True 或者 False 的结果。

操作符

描述

示例

== 相等

如果两者相等,返回 True,否则返回 False

(5==2) 是 False

!= 不相等

如果两者不相等,返回 True,否则返回 False

(5!=2) 是 True

> 大于

如果左边大于右边,返回 True,否则返回 False

(5>2) 是 True

< 小于

如果左边小于右边,返回 True,否则返回 False

(5<2) 是 False

>= 大于等于

如果左边大于等于右边,返回 True,否则返回 False

(5>=2) 是 True

<= 小于等于

如果左边小于等于右边,返回 True,否则返回 False

(5<=2) 是 False

a = 5
b = 2
print(a==b) #输出False
print(a!=b) #输出True
print(a>b) #输出True
print(a<b) #输出False
print(a>=b) #输出True
print(a<=b) #输出False
运算符
准确率:81.58%
填空题
ID:19
a = 10
b = 3
print(a>b,a<b,a!=b)

程序输出的是

[0/1]

赋值运算符

提示

注意

赋值运算符是为了精简程序,例如,score在原有的基础上加1,可以写成score = score + 1,右边的 score 是原来的值,左边的 score 是新的值。也可以写成score += 1

运算符

描述

示例

=

赋值运算符

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

a = 5
a += 2
print(a) #输出7
a -= 2
print(a) #输出5
a *= 2
print(a) #输出10
a /= 2
print(a) #输出5.0
a %= 2
print(a) #输出1.0
a **= 2
print(a) #输出1.0
a //= 2
print(a) #输出0.0
运算符
准确率:40.74%
填空题
ID:20
a = 3
b = 3
c = 9
b += a
c // = b
print(a,b,c)

程序输出的是

[0/1]

逻辑运算符

提示

注意

  • and 就是并且的意思,左右条件同时成立才成立

  • or 是或者的意思,左右条件有一个成立就成立

  • not 是不的意思,否定一个条件

运算符

描述

示例

and

布尔"与" x and y,x 和 y 都是 True,结果才是 True

5 > 3 and 5 > 8 是 False

or

布尔"或" x or y,x 和 y 只要有一个 True,结果就是 True

5 > 3 or 5 > 8 是 True

not

布尔"非" not x,x 是 True,结果就是 False,反之亦然

not(5 > 8) 是 True

a = 5
b = 3
c = 8
print(a > b and a > c) #输出False
print(a > b or a > c) #输出True
print(not a > c) #输出True
运算符
准确率:80.77%
填空题
ID:23
a = 2
b = 1
c = 3
print(a > b and a > c,a > b or a > c,not a > c)

程序输出的是

[0/1]

位运算符

运算符

描述

实例

&

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

(5 & 3) 输出结果 1 ,二进制解释:5 的二进制0101,3 的二进制0011,按位进行与运算,结果是:0001,对应十进制是数字 1

|

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

(5 | 3) 输出结果 7 ,二进制解释: 5 的二进制0101,3 的二进制0011,按位进行或运算,结果是:0111,对应十进制是数字 7

^

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

(5 ^ 3) 输出结果 6 ,二进制解释: 5 的二进制0101,3 的二进制0011,按位进行异或运算,结果是:0110,对应十进制是数字 6

~

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

(~5 ) 输出结果 -6 ,二进制解释: 5 的二进制0101,按位取反,得到1010, 以一个有符号二进制数的补码形式存在,对应的十进制是-6。原码反码补码知识点

<<

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

5 << 1 输出结果 10 ,二进制解释:5 的二进制00101,<<1 之后变成 01010,对应十进制是数字 10,相当于乘 2

>>

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

5 >> 1 输出结果 2 ,二进制解释: 5 的二进制00101,>>1 之后变成 00010,对应十进制是数字 2,相当于整除 2

a = 5 #二进制为0101
b = 3 #二进制为0011
print(a & b) #输出1,二进制为0001
print(a | b) #输出7,二进制为0111
print(a ^ b) #输出6,二进制为0110
print(~a) #输出-6,二进制为1010
print(a<<1) #输出10,二进制为01010
print(a>>1) #输出2,二进制为0010

成员运算符

运算符

描述

实例

in

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

x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

not in

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

x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

a = 'apple'
b = 'pp'
print(b in a) #输出True
print(b not in a) #输出False

身份运算符

运算符

描述

实例

is

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

x is y , 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

is not

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

x is not y , 类似 id(x) != id(y) 。如果引用的不是同一个对象则返回结果 True,否则返回 False。

a = 5
b = a
print(b is a) #输出True
print(b is not a) #输出False
print(id(a))
print(id(b)) #可以打印a跟b的id

运算符优先级

运算符

描述

**

指数 (最高优先级)

~ + -

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

* / % //

乘,除,求余数和取整除

+ -

加法减法

>> <<

右移,左移运算符

&

按位与

^

按位异或

|

按位或

<= < > >= == !=

比较运算符

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

赋值运算符

is 、is not

身份运算符

in 、not in

成员运算符

not and or

逻辑运算符

a = 5
b = 3
print(a + b * a) #输出20
print(3>0 and 0>=0) #输出True
print(3>0 or 0>=0)  #输出True
print(10 << 1)      #输出20
print(10 >> 1)      #输出5
print(10 ** 2)      #输出100

登录