运算符是一种“功能”符号,用来进行相应的运算。Python 运算符分为 算术运算符、位运算符、逻辑运算符、比较运算符、比较(关系)运算符、赋值运算符以及其他运算法。
运算符 | 功能表示 |
---|---|
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算 |
// | 整除运算 |
** | 幂运算(指数运算) |
% | 取余运算 |
“//” 用于整除运算,取商的整数部分。
>>>7//3 # 在我们7除以3是等于2.333...,而我们在这运算只取整数部分
2
>>>7.4//5 # 1.4
1.0
“%”用于取余数运算,取除法运算后的余数部分
>>>8%3 #8除3等于2余2,故输出余数2
2
按位运算符用于比较(二进制)数字:
运算符 | 名称 | 描述 |
---|---|---|
^ | 按位异或运算符(XOR) | 如果两位中只有一位为1,则将每个位设置为1 |
& | 按位与运算符(AND) | 如果两个位均为1,则将每个位设置为1 |
l | 按位或运算符(OR) | 如果两位之一为1,则将每个位设置为1 |
<< | 左移运算 | 运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 |
>> | 右移运算 | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 |
~ | 按位取反运算符(NOT) | 反转所有位 |
逻辑运算都是按位进行的,依据二进制进行运算。
>>> print(3^8,3|8,3&8,8>>1,8<<2,sep=',')
11,11,0,4,32
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
c = a | b; # 61 = 0011 1101
c = a ^ b; # 49 = 0011 0001
c = ~a; # -61 = 1100 0011
c = a << 2; # 240 = 1111 0000
c = a >> 2; # 15 = 0000 1111
逻辑运算符用于组合条件语句:
运算符 | 描述 | 示例 |
---|---|---|
and | 如果两个语句都为true,则返回True | x <5 and x <10 |
or | 如果其中一个语句为true,则返回True | x <5 or x <4 |
not | 反转结果,如果结果为true,则返回False | not(x <5 and x <10) |
Python中非0即为真,0为假。
a = 10
b = 20
if a and b:
print("变量 a 和 b 都为 true")
else:
print("变量 a 和 b 有一个不为 true")
if a or b:
print("变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print("变量 a 和 b 都不为 true")
# 修改变量 a 的值
a = 0
if a and b:
print("变量 a 和 b 都为 true")
else:
print("变量 a 和 b 有一个不为 true")
if a or b:
print("变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print("变量 a 和 b 都不为 true")
if not (a and b):
print("变量 a 和 b 都为 false,或其中一个变量为 false")
else:
print("变量 a 和 b 都为 true")
"""
变量 a 和 b 都为 true
变量 a 和 b 都为 true,或其中一个变量为 true
变量 a 和 b 有一个不为 true
变量 a 和 b 都为 true,或其中一个变量为 true
变量 a 和 b 都为 false,或其中一个变量为 false
"""
“[]” “()” “{}”表示空值,都为假
print([] and ())
"""
[]
"""
比较运算符也称关系运算符,其意义与数学中的定义相同,用来比较l两个值。
运算符 | 描述 | 示例 |
---|---|---|
== | 等于 : 比较对象是否相等 | x == y |
!= | 不等于 : 比较两个对象是否不相等 | x!= y |
> | 大于 : 返回x是否大于y | x> y |
< | 小于 : 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 | x < y |
>= | 大于等于 : 返回x是否大于等于y。 | x> = y |
<= | 小于等于 : 返回x是否小于等于y。 | x <= y |
a = 21
b = 10
c = 0
if a == b:
print("a 等于 b")
else:
print("a 不等于 b")
if a != b:
print("a 不等于 b")
else:
print("a 等于 b")
if a != b:
print("a 不等于 b")
else:
print("a 等于 b")
if a < b:
print("a 小于 b")
else:
print("a 大于等于 b")
if a > b:
print("a 大于 b")
else:
print("a 小于等于 b")
# 修改变量 a 和 b 的值
a = 5
b = 20
if a <= b:
print("a 小于等于 b")
else:
print("a 大于 b")
if b >= a:
print("b 大于等于 a")
else:
print("b 小于 a")
"""
a 不等于 b
a 不等于 b
a 不等于 b
a 大于等于 b
a 大于 b
a 小于等于 b
b 大于等于 a
"""
用于检查某个数据对象是否存在于具有多个元素(列表、元组、字典、字符串等)的数据对象之中,运算结果为Ture或False。
运算符 | 描述 | 示例 |
---|---|---|
in | 如果对象中存在具有指定值的序列,则返回True | y in x |
not in | 如果对象中不存在具有指定值的序列,则返回True | x not in |
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print ("变量 a 在给定的列表中 list 中")
else:
print ("变量 a 不在给定的列表中 list 中")
if ( b not in list ):
print ("变量 b 不在给定的列表中 list 中")
else:
print ("变量 b 在给定的列表中 list 中")
"""
变量 a 不在给定的列表中 list 中
变量 b 不在给定的列表中 list 中
"""
# 修改变量 a 的值
a = 2
if ( a in list ):
print ("变量 a 在给定的列表中 list 中")
else:
print ("变量 a 不在给定的列表中 list 中")
"""
变量 a 在给定的列表中 list 中
"""
dict = {'Java': 1, 'Python': 2, 'C#': 3, 'C++': 4}
print('c#' in dict)
# Python是区分大小写的
"""
False
"""
恒等运算符用于比较对象,不是相等的对象,而是如果它们实际上是相同的对象,并且具有相同的内存位置:
运算符 | 描述 | 示例 |
---|---|---|
is | 如果两个变量都是同一个对象,则返回True | x is y |
is not | 如果两个变量都不是同一对象,则返回True | x is not y |
is 与 == 区别:
>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND’ |
^ l | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |