时间:2021-05-22
1. in 和 not in —— 判断某个序列中是否存在某值
# inaa = [1,2,3,'Cathy','太平洋']if '大西洋' in aa: print('yes')else: print('no') # no# not inif '大西洋' not in aa: print('yes') # yeselse: print('no') #-------------------------------------------------------# 判断字符串是否存在某子串 if '马来西亚' in '马来西亚是一个太平洋国家': print('of course') # 输出 'of course'# ------------------------------------------------------if 0 in (0,1,2,3): print('hhhh') #输出 'hhhh'if 0 in [0,1,2,3]: print('kkkk') #输出 'hhhh'2. is 和 is not —— 判断两个标识符是不是指向同一个地址(同一个对象),类似于判断 id(x) == id(y) —— 具体对于相同值的内存管理
# 相同bb = 234cc = 234if bb is cc: print('bb is cc') #结果是 bb is cc else: print('bb is not cc')print(id(bb)) # id()值一样,因为python的优化机制,相同的'数值'数据会使用同样的内存空间。print(id(cc))# 相同bb = 'hhh'cc = 'hhh'if bb is cc: print('bb is cc') #同样也是因为python的自身机制,在某些'字符'位数下,相同字符串也会指向同一地址 ------ 有说20位的,与系统有关else: print('bb is not cc')# 相同,python的对象引用机制bb = [1,2,3] cc = bbif bb is cc: print('bb is cc') #结果是 bb is cc else: print('bb is not cc')# 不相同bb = [1,2,3]cc = [1,2,3]if bb is cc: print('bb is cc') else: print('bb is not cc') #结果是 bb is not ccprint(id(bb)) # id()值不一样print(id(cc))3. id() 函数,获取对象的内存地址(不同电脑不一样),例如:
bb = 'hhh'cc = bbif bb is cc: print('bb is cc') #结果是 bb is cc else: print('bb is not cc')print(id(bb)) # id()值一样,均为 1680346901336print(id(cc))4. 可变数据类型和不可变数据类型
不可变数据类型: 当该类型的变量值发生了改变,它对应的内存地址也会发生改变。
可变数据类型 :当该类型的变量值发生了改变,它对应的内存地址不发生改变。
这里的可变不可变,是指内存中的值内容(value)是否可以被改变。如果是不可变类型,在操作对象本身的时候,必须在内存新申请一块内存(因为原内存内容是不可变的)。如果是可变类型,操作对象的时候,不需要再在其他地方申请内存,只需要在此对象后面连续申请内存,所以它的地址会保持不变,但该内存区域大小会变化。
在python中:
int,string,float,tuple —— 属于python的不可变类型
object、list、set —— 属于python的可变类型
使用:可以使用内建函数id()来确认对象的地址在两次赋值前后是否发生了变化。
例如:分别对于数值和列表类型:
a = 1print(id(a))a = a+1 #a本身发生变化print(id(a))# 结果分别为:140732932812544 和 140732932812576,表示id值发生了变化a = ['1']print(id(a))a.append('sss') #a本身发生变化print(id(a))print(a) # 输出:['1', 'sss']# 结果分别为:1680347029768 和 1680347029768,表示id值没有变化以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python中的is和id用法。分享给大家供大家参考。具体分析如下:(ob1isob2)等价于(id(ob1)==id(ob2))首先id函数可以
python获取当前运行函数名称的方法实例代码摘要:c/c++中获取函数所在源码名,函数名和行号的方法很简单__FILE__,__FUNCTION__和__LI
本文实例讲述了Python学习笔记之自定义函数用法。分享给大家供大家参考,具体如下:函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,
本文实例展示了Python使用函数默认值实现函数静态变量的方法,具体方法如下:一、Python函数默认值Python函数默认值的使用可以在函数调用时写代码提供方
本文实例主要是Python中获取当前运行函数的名称,具体如下。python具有强大的自省能力,在函数运行时,可以在函数内部获取到当前所在的函数名称,请看示例代码