一.基本运算符:
1.算数运算符
2.赋值运算符
3.比较运算符
4.成员运算符
5.逻辑运算符
6.身份运算符
7.位运算符
二.物理行与逻辑行
一.算术运算符
-
+
:加法 -
-
:减法 -
*
:乘法 -
/
:除法(结果为浮点数) -
%
:取模(求余数) -
//
:整除(结果为商的整数部分) -
**
:幂运算(如2**3
结果为 8)
算数运算符的优先级与数学一致先乘除后加减,有括号的先算括号
a = 9 / 3
b=9+3
c=2*3
print(a) #结果为3.0
print(b)
print(c)
3.0
12.0
6
Python中的除法运算(真除法)默认返回浮点数(当操作数至少有一个是浮点数时更是如此),而加法运算(最宽)则根据操作数的类型返回相应的整数或浮点数。
真除法:
在Python编程语言中,是一种除法运算方式,其核心特点是无论操作数的类型(整数或浮点数)如何,其运算结果都会保留小数部分,即结果总是以浮点数的形式返回。
真除法的特点:
-
结果类型:无论操作数是否为整数,真除法的结果都是浮点数。
-
精确性:真除法能够保留除法运算的小数部分,从而提供更精确的结果。
-
适用性:在进行需要精确结果的数学计算时,真除法是非常有用的。
最宽:
在Python中,当你尝试对不同类型的值执行算术运算时,Python会自动将这些值转换为一种共同的数据类型,以便能够执行运算。这种转换通常遵循一种“向更宽类型”转换的原则,即选择能够表示所有参与运算值的最小公共类型
例如,当你尝试将一个整数(int)和一个浮点数(float)相加时,Python会将整数转换为浮点数,因为浮点数类型能够表示更广泛(或说“更宽”)的数值范围,包括小数部分。
a=3
b=2.0
print(a+b)
5.0
二.赋值运算符
-
=
:简单赋值 -
+=
:加法赋值(如a += 2
相当于a = a + 2
) -
-=
:减法赋值 -
*=
:乘法赋值 -
/=
:除法赋值 -
%=
:取模赋值 -
//=
:整除赋值 -
**=
:幂赋值
三.比较运算符
-
==
:等于 -
!=
:不等于 -
>
:大于 -
<
:小于 -
>=
:大于等于 -
<=
:小于等于
返回值为布尔类型(True/False)
result=5>=3
answer="2"==2
print(result)
print(answer)
True
False
四.成员运算符
-
in
:检查某值是否在序列中(如列表、元组、字符串) -
not in
:检查某值是否不在序列中
list1=[1,2,3,4]
print(2 in list1)
print("2" in list1)
True
False
五.逻辑运算符
-
and
:逻辑与 -
or
:逻辑或 -
not
:逻辑非
and:
假:既表示无值,如:0,False,""(引号内什么也没有)都表示假
真:既表示有值,如:1,2,True," "(引号里有值,即使是空格也算)都表示真
当第一个为真时,无论第二个为真还是假,都返回第二个
#第一个为真,第二个也为真
print(True and True)
print(1 and 2 )
print(' 'and 1)
#第一个为真,第二个为假
print(True and False)
print(" "and"")
print(1 and 0)
#第一个为真,第二个为真
True
2
1
3
#第一个为真,第二个为假
False
0
当第一个为假时,无论第二个为真还是假,都返回第一个
#第一个为假,第二个为真
print(False and True)
print(0 and 1)
print(''and 1)
#第一个为假,第二个也为假
print(False and False)
print(0 and 0)
print(0.0 and 0)
#第一个为假,第二个为真
False
0
#第一个为假,第二个也为假
False
0
0.0
or:
当第一个为真时,无论第二个为真还是假,都返回第一个
#第一个为真,第二个也为真
print(True or True)
print(1 or 2 )
print(' 'or 1)
#第一个为真,第二个为假
print(True or False)
print(" "or "")
print(1 or 0)
#第一个为真,第二个也为真
True
1
#第一个为真,第二个为假
True
1
当第一个为假时,无论第二个为真还是假,都返回第二个
#第一个为假,第二个为真
print(False or True)
print(0 or 1)
print(''or 1)
#第一个为假,第二个也为假
print(False or False)
print(0 or 0)
print(0.0 or 0)
#第一个为假,第二个为真
True
1
1
#第一个为假,第二个也为假
False
0
0
六.身份运算符
-
is
:检查两个对象是否是同一个对象(即内存地址是否相同) -
is not
:检查两个对象是否不是同一个对象
七.位运算符
-
&
:按位与 -
|
:按位或 -
^
:按位异或 -
~
:按位取反 -
<<
:左移 -
>>
:右移
1.按位与(&):
对两个数的二进制表示进行逐位与操作,当且仅当两个相应的位都为1时,结果的位才为1。
a = 5 # 二进制: 0101
b = 3 # 二进制: 0011
result = a & b # 结果: 0001
print(result)
1
2.按位或(|):
对两个数的二进制表示进行逐位或操作,当至少有一个相应的位为1时,结果的位就为1
a = 5 # 二进制: 0101
b = 3 # 二进制: 0011
result = a | b # 结果: 0111
print(result)
7
3.按位异或(^):
对两个数的二进制表示进行逐位异或操作,当两个相应的位不同时,结果的位为1。
a = 5 # 二进制: 0101
b = 3 # 二进制: 0011
result = a ^ b # 结果: 0110
print(result)
6
4.按位取反(~)
对一个数的二进制表示进行逐位取反操作,0变为1,1变为0。注意,结果是一个负数,因为Python使用补码表示负数。
a = 5 # 二进制: 0101
result = ~a # 结果: -6 (补码: 11111111111111111111111111111010 在32位系统上)
print(result)
-6
5.左移(<<):
将一个数的二进制表示向左移动若干位,右边补0。
a = 5 # 二进制: 0101
result = a << 2 # 结果: 10100
print(result)
20
6.右移(>>):
将一个数的二进制表示向右移动若干位,左边补符号位(即0或1,取决于原数的符号)。
a = 20 # 二进制: 10100
result = a >> 2 # 结果: 0101
print(result)
5
7.应用
1.检查奇偶性:通过按位与操作检查一个数的最低位是否为1(即检查是否为奇数)。
def is_odd(n):
return n & 1 == 1
print(is_odd(3)) # 输出: True
print(is_odd(4)) # 输出: False
2.交换两个数的值而不使用临时变量:
a = 5
b = 3
a = a ^ b
b = a ^ b
a = a ^ b
print(a) # 输出: 3
print(b) # 输出: 5
3.快速计算2的幂:
def power_of_two(n):
return 1 << n
print(power_of_two(3)) # 输出: 8
一.什么是物理行?
在使用Python代码中使用换行符分割的每一行代码,既使用回车键进行换行操作时会生成物理行
print("1.什么是物理行:代码中使用换行符分割的每一行代码,是一个物理行0")
a=1
b=2
print(a,b)#到此一共有4个物理行
二.什么是逻辑行?
对Python代码进行解释,一个语句是一个逻辑行
dic={
"a":1,
"b":2
}#作为一个赋值语句解释,是一个逻辑行
print("1\
2\
3")#作为一个函数调用语句解释,是一个逻辑行
三.逻辑行与物理行的关系
1.使用';'可以使多个逻辑行合并成一个物理行
q=1;w=2;e=3;print(q,w,e) #一个物理行
#等效于
q=1
w=2
e=3
print(q,w,e) #四个物理行
if True : a=1;else: a=2 #位于同一缩进,一个物理行
#等效于
if True:
a=1
else:
a=2 #四个物理行
2.使用'\'将一个逻辑行变为多个物理行
print("1\
2\
3") #一个逻辑行,三个物理行