python支持一下类型的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
1、算术运算符
算术运算符在上个博客中已经介绍过。
需要特别注意的地方是:
a = -3**2
# 这里会返回-9
print(a)
即负号的优先级比幂运算低。
2、比较运算符
比较运算符的使用和Java中相同,需要注意的是:
- 和java中不同,python中的False = 0,True =1
- 和java中不同,python中的False、True首字母大写,java中小写
- 和java中不同,python中的比较运算发支持“连写”,即:
//在Java中,比较运算符一次只能两两比较,不能连写
public class Test {
public static void main(String[] args) {
int num = 5;
if (num>4 && num<10){
System.out.println(true);
}
}
}
num = input("请输入一个数字")
# python支持比较符连写
if 5 < int(num) <= 10:
print(True)
3、赋值运算符
赋值运算符有:=、+=、-=、*=、/=、%=、**=、//=
使用规则和Java中类似,不再赘述。
4、逻辑运算符
python中的逻辑运算符不使用符号(&&、||、!),而直接英文单词and、or、not
5、位运算符
位运算符有:
- &:与,同为1则为1,否则为0
- | :或,只要有一个为1则为1,都为0则为0
- ^:异或,相异时(一个为1一个为0),则为1,否则为0
- ~ :取反
- <<:左移,高位丢弃,低位补0
- >>:右移,高位补0
6、成员运算符
python中提供成员运算符in、not in,用于判断元素是否在序列(列表、元组、字符串)中。
还可以用del 删除从序列中删除某个元素,比如:
aList = ['a', 1, 2, 3]
if 'a' in aList:
del aList[aList.index('a')]
print(aList)
7、身份运算符
python中的身份运算符有is、is not。
- is用于判断两个标识符是否引用自同一个对象,a is b相当于id(a) == id(b),id()用于获取对象的内存地址
- is not相反
需要注意的是is和is not是用于判断“对象的引用地址是否相等”,而不是类型,类型判断使用type()和isinstance:
type和isinstance的差别:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型(和java中的instanceof效果相同)。
另外一点需要注意的是,is 和 == 不同:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。这与java中不同,java中的==比较引用对象是否同一个,和python中的is相同。
最后需要注意,==、>、<比较值的时候,只要有”合适的“比较方法就可以进行比较,比如1和1.0进行比较,1 ==1.0会返回true。
例如:
>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
>>> 1 == 1.0
True
>>> 1 is 1.0
False
8、 运算符的优先级排序
** | 指数 (最高优先级) |
~ + – | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ – | 加法减法 |
>> << | 右移,左移运算符 |
& | 位与 |
^ | | 位或 |
<= < > >= | 比较运算符 |
<> == != | 等于、不等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
9、python中的三元操作符
python3 中的三元操作符有点特别,是通过if else实现的。格式为:
a = x if x<y else y
比如说:
a = 4 if 1>2 else 5
# 返回5
print(a)
Java中的写法:
a = 1>2?5:4;
10、断言
python3 中提供assert操作符,当assert后面的表达式为False时,会抛出一个AssertionError异常。
可用于程序调试、中断程序运行等等。
比如:
assert 3 > 4