用于执行基本的数学运算
+
:加法-
:减法*
:乘法/
:除法%
:取模(取余数)**
:幂运算//
:整除(取整数部分)x1=5
x2=2
x3=(1,2)#元组
x4=(3,4)
x5=[1,2]
x6=[3,4]
print(x1+x2)
print(x3+x4)
print(x5+x6)
print(x1-x2)
print(x1*x2)
print(x1/x2)
print(x1%x2)
print(x1**x2)
print(x1//x2)
结果
7
(1, 2, 3, 4)
[1, 2, 3, 4]
3
10
2.5
1
25
2
# 已知从凌晨 0:0:0 到现在已经过了 63320 秒, 请问现在是 几时几分几秒?
s=63320
h=s//(60*60)
m=(s-h*(60*60))//(60)
s=s%60
print(h,"时",m,"分",s,"秒")
结果
17 时 35 分 20 秒
用于比较两个值并返回布尔值 True 或 False
==
:等于!=
:不等于<
:小于>
:大于<=
:小于等于>=
:大于等于# 比较运算符
x1=10
x2=30
print(x1==x2)#判断值是否相等
print("hello"=="hello")
print(x1!=x2)#判断值是否不相等
x1=100
x2=100
print(x1>x2)#大于
print(x1<x2)#小于
print(x1>=x2)#大于等于
print(x1<=x2)#小于等于
注意: x1=<x2 x1=>x2 这两种写法不对
结果
False
True
True
False
False
True
True
用于连接布尔值并返回布尔值
下面是and 和or的真值表
x的值 | y的值 | x and y的值 |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
优先返回假值对象, 如果x 为假值,返回x, 否则返回y
x的值 | y的值 | x or y的值 |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
优先返回真值对象, 如果x 为真值,返回x, 否则返回y
A and B
A是一个表达式 B也是一个表达式
如果A表达运行完毕后 的结果 拿来转换为布尔值 bool(A)
结果为False 那么B表达式就不运行 整个表达式A and B 的结果就为A表达式(False)
结果为True 整个表达式A and B 的结果就为B表达式
x1=20
x2=30
re=x1<18 and x2>18
print(re)
结果
False
x1=20
x2=30
re=x1>18 and x2>18#这里A(X1)的表达式bool值为Ture
print(re)
结果
Ture
x1=0
x2=200
re=x1 and x2
print(re)
结果
0
A or B
A是一个表达式 B也是一个表达式
如果A表达运行完毕后 的结果 拿来转换为布尔值 bool(A)
结果为True 那么B表达式就不运行 整个表达式A and B 的结果就为A表达式
结果为False 整个表达式A and B 的结果就为B表达式
x1=20
x2=30
re=x1>18 or x2>18
print(re)
x1=0
x2=200
re=x1 or x2
print(re)
结果
True
200
not 运算符是一元运算符
x1=[ ]
re=not x1
print(re)
结果
Ture
用于给变量赋值
=
:赋值
+=
:加法赋值
-=
:减法赋值
*=
:乘法赋值
/=
:除法赋值
%=
:取模赋值
**=
:幂运算赋值
//=
:整除赋值
注意:
没有 a++、 a-- 这种自增自减运算符;
# 赋值运算符
x=10+20# = 号是一种运算符,这个运算符 会先执行右边的代码 然后把执行的结果赋值给左边的表达式
print(x)
x=10
x=x-2# 1.先执行 x-2 x是取值操作 2.然后再执行 x=10-2 x=8
print(x)
x=10
x-=5# x=x-5
print(x)
x=10
x+=2
print(x)#12
x*=2
print(x)#24
x/=2
print(x)#12.0
x%=2
print(x)#0.0
x//=2
print(x)#0.0
# x++ #python没有++ --
# print(x)
结果
30
8
5
12
24
12.0
0.0
0.0
&
:按位与|
:按位或^
:按位异或~
:按位取反<<
:左移位>>
:右移位位运算符都是通过转化为二进制来计算的
按位与(&)
表达式:a & b
功能:对于每一位,如果a和b的相应位都是1,则结果位为1,否则为0。
# 示例:计算两个二进制数的按位与
a = 0b1011 # 二进制表示的11
b = 0b1101 # 二进制表示的13
result_and = a & b # 计算两者之间的按位与
print(bin(result_and)) # 输出:0b1001 (十进制为9)
按位或(|)
表达式:a | b
功能:对于每一位,只要a和b中至少有一位是1,则结果位为1,否则为0。
# 示例:计算两个二进制数的按位或
a = 0b1011
b = 0b1101
result_or = a | b # 计算两者之间的按位或
print(bin(result_or)) # 输出:0b1111 (十进制为15)
按位异或(^)
表达式:a ^ b
功能:对于每一位,如果a和b的相应位不同(一个为1,另一个为0),则结果位为1,否则为0。
# 示例:计算两个二进制数的按位异或
a = 0b1011
b = 0b1101
result_xor = a ^ b # 计算两者之间的按位异或
print(bin(result_xor)) # 输出:0b110 (十进制为6)
按位取反(~):
表达式:~a
功能:对操作数a的每一个二进制位进行取反,即将1变为0,0变为1。
# 示例:计算一个二进制数的按位取反
a = 0b1011
result_not = ~a # 计算a的按位取反
print(bin(result_not)) # 输出:-0b1100
左移运算符(<<):
a << b
# 示例:将一个二进制数向左移动两位
a = 0b1011
result_left_shift = a << 2 # 将a向左移动两位
print(bin(result_left_shift)) # 输出:0b101100 (十进制为44)
右移运算符(>>):
表达式:a >> b
功能:
# 示例:将一个有符号二进制数向右移动一位
a = -0b1000 # 十进制为-8
result_right_shift = a >> 1 # 将a向右移动一位
print(bin(result_right_shift)) # 输出:-0b100 (十进制为-4)
# 对于无符号数的例子
unsigned_a = 0b1000
unsigned_result_right_shift = unsigned_a >> 1
print(bin(unsigned_result_right_shift)) # 输出:0b100 (十进制为4)
用于比较对象的内存地址(即身份)
值和类型都相同时,存在一个内存空间里面
a = 1
b = 1
print(a == b) #True, 比较的是值
print(a is b) #True, 比较的是内存地址,同一个值放在一个内存里面
类型不同时就需要存放在两个内存空间里
a=1
b=1.0
a == b #True,值是相等的
a is b #False,需要放在两个内存空间里面,分别表示int和float
有序的列表list
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) #True, 比较的是值
print(a is b) #False,比较的是内存地址
a = [1, 2, 3]
b = [1, 3, 2]
print(a == b) #False,比较的是值,列表是有序的,值不同
print(a is b) #False,比较的是地址
True
False
False
False
无序的集合Set
a = {1, 2, 3}
b = {1, 3, 2}
print(a == b) #True,比较的是值,Set是无序的,所以值相同
print(a is b) #False,比较的是地址
无序的字典Dict
a = {'name': '张三', 'age': 10}
b = {'age': 10, 'name': '张三'}
print(a == b) #True,比较的是值,字典是无序的,所以值相同
print(a is b) #False,比较的是地址
用于检查一个值是否是某个集合的成员
in
:判断值是否存在于序列中
not in
:判断值是否不存在于序列中
x1=1
x2=2
x3=[1,3,4]
print(x1 in x3)
print(x2 in x3)
结果
Ture
False
max = a if a>b else b