python and not字符_python —— 一些基本知识( is、 not、 字符串拼接、深浅copy

1. is 和 == 的用法和区别:

== 是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等

>>> a = 'cheesezh'

>>> b = 'cheesezh'

>>> a ==b

True

is 是比较两个变量值的内存地址是否一样

>>> x = y = [4,5,6]>>> z = [4,5,6]>>> x ==y

True>>> x ==z

True>>> x isy

True>>> x isz

False

2.字符串的拼接方法

注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接

在效率上 format > % > +

1、 加号‘+’,乘号 ‘*’

>>> name = 'Fiona'

>>> age = '22'

>>> name +age'Fiona22'

>>> name*5

'FionaFionaFionaFionaFiona'

2、 % s

>>> name = 'Fiona'

>>> 'your name is %s'%name'your name is Fiona'

还有%d (十进制) 和 %f (默认保留小数点后6位, %.3f 表示保留3位小数位)的方法,只能传入整数和浮点数,%s 是可以传入字符串和数字的

3、format

>>> name = 'Fiona'

>>> '{} is a good girl'.format(name)'Fiona is a good girl'

% 和 format 属于格式化输出的用法了(https://www.cnblogs.com/fat39/p/7159881.html)

3.and,not..or的优先级

not > and > or

1 and 3 or 4 and 5out :3

1 and 0 or 10 and 7out :7

and : 当两个条件都成立的时候,输出为真,否则为False,要对两个条件都进行比较,会输入最后一个

or : 当两个条件其中一个成立的时候,输出为true,否则为False,如果第一个条件成立,则不会比较后面的了

not : 是输入值当取反

4.深浅copy

1.浅copy()和赋值不一样,内存地址会改变,生成一个新的内存地址

#浅copy 列表、字典都是一样的。以list举例。

l1 = [1,2,3,4]

l2= l1.copy() #id内存地址不一样,创建了两个空间

l1.append('barry') #一个改变,copy不改变

print(l1,id(l1)) #[1, 2, 3, 4, 'barry'] 41709256

print(l2,id(l2)) #[1, 2, 3, 4] 41708616

2.嵌套

# 第一层都是独立的的。从第二层开始都是是公用的,改一个都会变。

# 有嵌套层,列表都会添加。整体的内存地址不一致。嵌套的内存地址一样。

l1 = [1,[22,33,44],3,4,]

l2=l1.copy()

l1[1].append('55')print(l1,id(l1),id(l1[1])) #[1, [22, 33, 44, '55'], 3, 4] 35417160 35417800

print(l2,id(l2),id(l2[1])) #[1, [22, 33, 44, '55'], 3, 4] 35417864 35417800

3. 深copy.deepcopy()

# 对于深copy来说,两个是完全独立的,改变任意一个的元素(无论是多少层),另一个绝不会改变。

复制一份,完全没有变化,不会受l1的影响。l1改变,l2不会跟着改变。

复制代码

#深copy.deepcopy()

import copy #先引入模块

l1 = [1,[22,33,44],3,4,]

l2=copy.deepcopy(l1)#改变第一层

l1[0] = 111

print(l1) #[111, [22, 33, 44], 3, 4]

print(l2) #[1, [22, 33, 44], 3, 4]#改变第二层

l1[1].append('barry')print(l1) #[111, [22, 33, 44, 'barry'], 3, 4]

print(l2) #[1, [22, 33, 44], 3, 4]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值