二、运算符

1、算数运算符

加 - 减 * 乘 / 除 % 取余 ** 返回x的y次幂 //返回商的整数部分
/返回浮点数类型 想要返回整数类型 使用//整除

2、比较运算符

==	!=	>	<	>=	<=

3、赋值运算符

 +=	-=	*=	/=	%=	**=	//=

4、逻辑运算符

and #逻辑与
or	#逻辑或
not	#逻辑非

Python语言支持逻辑运算符,以下假设变量a为10,b为20:

and:x and y 布尔“与”–如果x为False,x and y返回False,否则它返回y的计算值。 (a and b)返回20。
or:x or y 布尔“或”–如果x是True,它返回x的值,否则它返回y的计算值 (a or b)返回10。
not:not x 布尔“非”–如果x为True,返回False。如果x为False,它返回True not(a and b)返回False

逻辑运算符特点
返回值特点: 在逻辑运算符两侧的哪个值判断出整条语句的真假,就返回哪个值。

4.1、and 逻辑与

特点:两侧为真才为真,有一侧为假就为假

print(False and 1)	
>> False	#第一个值为假,所以就判断出该语句为假(判断结束),因此返回第一个值False。
print([] and 1)
>> []		#第一个值为假,所以就判断出该语句为假(判断结束),因此返回第一个值[]。
print(1 and 2)
>> 2		#第一个值为真,接下来判断第二个值,第二个值也为真,所以就判断出该语句为真(判断结束),因此返回第二个值。
print(1 and [])
>> []		#第一个值为真,接下来判断第二个值,第二个值为假,所以就判断出该语句为假(判断结束),因此返回第二个值。

4.2、or 逻辑或

特点:有一侧为真就为真,两侧为假才为假

print(1 or 2)
>> 1		#第一个值为真,所以判断出该语句为真(判断结束),因此返回出第一个值1
print(False or 1)
>> 1		#第一个值为假,接下来判断第二个值,第二个值为真,所以就判断出该语句为真(判断结束),因此返回第二个值1。
print(0 or 1)
>> 1		#第一个值为假,接下来判断第二个值,第二个值为真,所以就判断出该语句为真(判断结束),因此返回第二个值1。
print(False or [])
>> []		#第一个值为假,接下来判断第二个值,第二个值为假,所以就判断出该语句为假(判断结束),
因此返回第二个值为[]。

4.3、not 逻辑非

特点:真为假,假为真

print(not 1)
>> False
print(not [])
>> True
print(not False)
>> True

5、成员运算符

说明:

in	#如果在指定的序列中找到值返回True,否则返回False
not in	#如果在指定的序列中没有找到值返回True,否则返回False

6、身份运算符

is	#is	是判断两个标识符是不是引用自一个对象(比较的是内存地址是否相同)
	#x is y,类似id(x) == id(y),如果引用的是同一个对象则返回True,否则返回False
   
is not	#is not 是判两个标识符是不是引用自不同对象
		#x is not y, 类似id(a) != id(b)。如果引用的不是同一个对象则返回结果True,否则返回False。

==和is的区别

  • is是比较两个引用是否指向了同一个对象(比较的是内存地址是否相同)
  • ==是比较两个对象是否相等
>>> a = [1, 2, 3]
>>> b = a
>>> b is a # a的引用复制给b,他们在内存中其实是指向了用一个对象
True 
>>> b == a # 当然,他们的值也是相等的
True
>>> b = a[:] # b通过a切片获得a的部分,这里的切片操作重新分配了对象,
>>> b is a # 所以指向的不是同一个对象了
False
>>> b == a # 但他们的值还是相等的
True

7、位运算符

^ : 按位异或运算符,当两个对应的二进制相异时,结果为1

面试题:

不使用第三个变量交换两个变量的值:

1.利用加法

x = 2
y = 1
print(x, y)
>>> 2 1
x = x + y
y = x - y
x = x - y
print(x, y)
>>> 1 2

2.利用对称赋值

x = 2
y = 1
print(x, y)
>>> 2 1
x, y = y, x
print(x, y)
>>> 1 2

3.位运算^键值交换

x = 2   #二进制表示:0010
y = 1   #二进制表示:0001
x = x ^ y   #二进制表示:0010 ^ 0001 = 0011 = 3
y = x ^ y   #二进制表示:0011 ^ 0001 = 0010 = 2
x = x ^ y   #二进制表示:0011 ^ 0010 = 0001 = 1
print(x, y)
>>> 1 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值