python学习之运算符
目录
python学习之运算符
本篇文章说明python中的一些运算符,python版本号为python3.6,python2中的内容不再本篇文章内
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
1. 算术运算符
| 运算符 | 描述 | 实例 | 
|---|---|---|
+ |  
   两个对象相加 | 10+20=30 |  
  
- |  
   得到负数或是一个数减去另一个数 | 20-10=10 |  
  
* |  
   两个数相乘或是返回一个被重复若干次的字符串 | 2*3=6或 'py'*3='pypypy' |  
  
/ |  
   x除以y | 5/2=2.5 |  
  
% |  
   取模,返回除法的余数 | 5%3=2 |  
  
** |  
   幂,返回x的y次幂 | 2**10=1024 |  
  
// |  
   取整除,返回商的整数部分(向下取整) | 10//3=3 |  
  
2. 比较运算符
| 运算符 | 描述 | 
|---|---|
== |  
   等于 - 比较对象是否相等 | 
!= |  
   不等于 - 比较两个对象是否不相等 | 
<> |  
   不等于 - 比较两个对象是否不相等 | 
> |  
   大于 - 返回x是否大于y | 
< |  
   小于 - 返回x是否小于y | 
>= |  
   大于等于 - 返回x是否大于等于y。 | 
<= |  
   小于等于 - 返回x是否小于等于y。 | 
3.位运算符
| 运算符 | 描述 | 实例 | 
|---|---|---|
& |  
   按位与运算符 | 3&5=1 ,二进制解释:011 & 101 = 001 |  
  
| |  
   按位或运算符 | 3|5=7 ,二进制解释:011 | 101 = 111 |  
  
^ |  
   按位异或运算符 | 3^5=7,二进制解释:011 ^ 101 = 110 |  
  
~ |  
   按位取反运算符,~x 类似于 -x-1 |  
   ~5 = -6 |  
  
<< |  
   左移动运算符: 高位丢弃,低位补0。 | 4<<4=64 |  
  
>> |  
   右移动运算符 | 128>>4=8 |  
  
4. 逻辑运算符
| 运算符 | 逻辑表达式 | 描述 | 实例 | 
|---|---|---|---|
| and | x and y |  
   布尔"与" 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | 12 and 4 = 4 或 12 and False = False |  
  
| or | x or y |  
   布尔"或" 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | 12 or 5 = 12 |  
  
| not | not x |  
   布尔"非" 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not 5 = False |  
  
5. 成员运算符
| 运算符 | 描述 | 实例 | 
|---|---|---|
| in | 如果在指定的序列中找到值返回 True,否则返回 False。 | 's' in 'asdf' = True |  
  
| not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | 's' not in 'asdf' = 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。. |  
  
id() 函数用于获取对象内存地址。
7.其他
1. 关于++ 或 -- 自运算符
  
   因为在 Python 里的数值和字符串之类的都是不可变对象,对不可变对象操作的结果都会生成一个新的对象。
a = 1
print(id(a))
a += 1
print(id(a))
#输出结果
1908042784
1908042816 
  在 C/java 之类的语言中,把a指向内存地址单元数据值由1改成了2。但是在Python中是完全不同的另一套机制。解释器创建一个新的整数对象 2。然后把这个对象的地址再次分配给 a。
   所以在 Python 中不可能出现C/java 之类那种单独一行一个 i++,i-- 的。
2. is 和 ==
  
   is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
 a is b 相当于 id(a)==id(b)。
3. 数组的两种赋值方式区别
在python中给数组赋值的常用方法中有两个不同的方式
# 第一种
b=a 
# 第一种
b=a[:] 
看起来都是一样的,那么他们之间有没有什么区别呢?当然,区别是有的。区别就是:前者传递引用;后者是拷贝。直接=是引用赋值,引用原来的对象;而[:]是重新推导,会生成新的对象。用代码演示如下:
a = [1, 2, 3, 4]
b = a
c = a[:]
print(id(a))
print(id(b))
print(id(c))
#输出结果
2294445187016
2294445187016
2294445993544
                    更多精彩
		
													
													
													
													
	
		
