python数组运算符_python学习之运算符

python学习之运算符

本篇文章说明python中的一些运算符,python版本号为python3.6,python2中的内容不再本篇文章内

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值