目录
1. 赋值运算符: =
可以直接给变量赋值,也可以将一个变量的值赋值给另一个变量,也可以几个变量同时赋值;
num1 = 20190730
num2 = num1
num3 = num4 = 123456
注:扩展赋值运算符
+= | 对于x+=y,实际含义为x=x+y; |
-= | 对于x-=y,实际含义为x=x-y; |
....... |
赋值运算符可以与算术运算符和位运算符结合,进而扩展赋值运算符;
2. 算术运算符
+ | 加法运算符,也可作为字符串的连接符 |
- | 减法运算符,还可用来求负数 |
* | 乘法运算符,还可作为字符串的连接符,如有一个字符串str1,3*str1表示将3个str1连接起来 |
/ | 除法运算符 |
// | 整除运算符,使用其获得结果的整数部分 |
% | 求余运算符,不要求除数和被除数都为整数,支持对浮点数求余 |
** | 乘方运算符 |
3. 位运算符
将数据按照二进制进行计算;
& | 按位与 | 两个操作数对应位全都为1结果才为1 |
| | 按位或 | 两个操作数对应位存在1结果就为1 |
^ | 按位异或 | 两个操作数对应位不同为1 |
~ | 按位取反 | 1变0,0变1(包括符号位) |
<< | 左位移运算符 | |
>> | 右位移运算符 |
# 求反运算
num1 = 17
# 00010001 最高位为符号位,0表示正数,1表示负数;
num2 = 15
# 00001111
print(~ num1)
# 11101110 符号位为1,变为负数,负数以补码形式存储
# 输出:-18
print(~ num2)
# 11110000
# 输出:-16
# 左位移运算
num1 = 17
# 00010001 最高位位符号位,0表示正数,1表示负数;
num2 = 15
# 00001111
print(num1 << 1)
# 00100010
# 输出:34
print(num2 << 2)
# 00111100
# 输出:60
左位移运算符是将操作数的二进制码指定左移位数,左移后右边空出来的位以0填充;
右位移运算符是将操作数的二进制码右移指定位数后,左侧空出来的位以原来的符号位填充,即操作数如果为正数,则补充0,操作数如果为负数,补充1;
# 右位移运算
num1 = 17
# 00010001 最高位位符号位,0表示正数,1表示负数;
num2 = -15
# 补码表示:11110001
print(num1 >> 1)
# 00001000
# 输出:8
print(num2 >> 2)
# 11111100
# 输出:-4
4. 比较运算符
bool 类型:表示对与错,只有两个值 True / False ;
> | |
>= | |
< | |
<= | |
== | |
!= | |
is | 判断两个变量所引用的对象是否相同,如果相同返回True |
is not | 判断两个变量所引用的对象是否不相同,如果不相同返回True |
注:True在程序中也可当成整数1使用,False当作整数0使用;
print("1和True是否相等:", 1 == True)
# 输出:1和True是否相等: True
print(True+False)
# 输出:1
5. 逻辑运算符
用于操作bool类型的变量、常量或表达式,逻辑运算的返回值也为bool类型;
and | 两个操作数都为True才返回True |
or | 只要有一个操作数有一个是True,返回True |
not | 操作数为True,返回False; |
6. in运算符
判断某个成员是否在序列中;如判断字符串是否包含某子串;
如果在,返回True;不在,返回False;
Python也提供了与它相反的运算:not in
str1 = "good good study day day up"
print("day" in str1)
# True
7. 三目运算符
运算格式: 判断正确执行的语句 if 判断条件 判断错误执行的语句
money = input("爸妈给了多少钱:")
print("买欧文5") if int(money) > 500 else print("买克莱4")
注:执行的语句可以放置多条语句,此时需要将多条语句用括号括起来,Python支持两种放置方式:
1)多条语句以逗号隔开,每条语句都会执行,程序返回多条语句的返回值组成的元组;
2)多条语句以分号隔开,每条语句都会执行,程序只返回第一条语句的返回值;
money = input("爸妈给了多少钱:")
(print("买欧文5"),print("欧文5:999元"),print("剩余的钱:", int(money)-999))if int(money) > 1000 else print("买克莱4")
# 爸妈给了多少钱:1050
# 买欧文5
# 欧文5:999元
# 剩余的钱: 51
# 爸妈给了多少钱:500
# 买克莱4
8. 运算符优先级
优先级从高到低为:
索引运算符 | x[index] |
乘方 | ** |
按位取反 | ~ |
符号运算符 | +、- |
乘除 | *、/、//、% |
加减 | +、- |
位移 | >>、<< |
按位与 | & |
按位异或 | ^ |
按位或 | | |
比较运算符 | ==、!=、>=、<=、>、< |
is运算符 | is、is not |
in运算符 | in、not in |
逻辑非 | not |
逻辑与 | and |
逻辑或 | or |