1. in 和 not in —— 判断某个序列中是否存在某值

# in
aa = [1,2,3,'Cathy','太平洋']
if '大西洋' in aa:print('yes')
else:print('no')  # no# not in
if '大西洋' not in aa:print('yes')  # yes
else: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 = 234
cc = 234
if 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 = bb
if 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 cc
print(id(bb))  # id()值不一样
print(id(cc))

3. id() 函数,获取对象的内存地址(不同电脑不一样)。

例如:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
bb = 'hhh'
cc = bb
if bb is cc:print('bb is cc')  #结果是 bb is cc
else:print('bb is not cc')
print(id(bb))  # id()值一样,均为 1680346901336
print(id(cc))

4. 可变数据类型和不可变数据类型

  • 不可变数据类型: 当该类型的变量值发生了改变,它对应的内存地址也会发生改变。

  • 可变数据类型 :当该类型的变量值发生了改变,它对应的内存地址不发生改变。

这里的可变不可变,是指内存中的值内容(value)是否可以被改变。如果是不可变类型,在操作对象本身的时候,必须在内存新申请一块内存(因为原内存内容是不可变的)。如果是可变类型,操作对象的时候,不需要再在其他地方申请内存,只需要在此对象后面连续申请内存,所以它的地址会保持不变,但该内存区域大小会变化。

在python中:

  • int,string,float,tuple —— 属于python的不可变类型

  • object、list、set —— 属于python的可变类型

使用:可以使用内建函数id()来确认对象的地址在两次赋值前后是否发生了变化。

例如:分别对于数值和列表类型:

a = 1
print(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值没有变化

python的in,is和id函数相关推荐

  1. python的id方法_python中id()函数的实用研究实例

    python中id()函数的实用研究实例 >>> a = 2.5 >>> b = 2.5 >>> c = b >>> a is ...

  2. Python id() 函数

    Python id() 函数  Python 内置函数 描述 id() 函数用于获取对象的内存地址. 语法 id 语法: id([object]) 参数说明: object -- 对象. 返回值 返回 ...

  3. python中object转str_python的id()函数介绍 python怎么将objectid转为str

    python id函数的输出值问题 Python中id函数为什么会对不同对象返回相同值如果那两个对象指向的是相同的内存地址,也就是说内部指向的其实是一个对象,那他们的ID返回值就是一样的. pytho ...

  4. python中id函数的用法_用id函数做几个测试

    Python内置的id函数其实非常简单,就是将参数对象的内存地址返回,即id函数返回的是一个很大的整数(地址).基于Python语言的特性,本文做了几个测试,还比较有趣. 相同整数的id相同 > ...

  5. id在python中是什么意思_Python中的id()函数指的什么

    Python官方文档给出的解释是 id(object) Return the "identity" of an object. This is an integer (or lon ...

  6. python基础---元组、字典、函数、文件、异常

    文章目录 python基础---元组.字典.函数.文件.异常 Tuple(元组) 常用操作 dict(字典) 函数 文件 异常 python基础-元组.字典.函数.文件.异常 Tuple(元组) tu ...

  7. python函数def里面嵌套def,python菜鸟求问关于嵌套函数中作用域范围应该怎么理解?,python嵌套,直接上代码def l(l...

    python菜鸟求问关于嵌套函数中作用域范围应该怎么理解?,python嵌套,直接上代码def l(l 直接上代码def l(list): def d(): return list return d ...

  8. 列举Python中常见的内置函数

    Python内置函数就是python标准库里(语言自身携带的)函数(公共函数). 那么,接下来就来谈一谈python里的内置函数 1.abs() 此函数返回数字的绝对值. a = 5 b = -10 ...

  9. 零基础学Python(第十六章 函数·重点)

    本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 本章内容为: ...

最新文章

  1. 社区活跃吗_武汉大江园社区活跃着一支90后志愿者突击队
  2. Aggregate可以做字符串累加、数值累加、最大最小值
  3. nestjs CRUD
  4. 闪电模型数学_初中数学|23种几何模型汇总(中)
  5. 可怕的乖孩子_小说《可怕的乖孩子》讲了一个什么故事?
  6. 【建议收藏】数学建模竞赛网站汇总
  7. 智能检测营销是否合规,网易易盾发布广告合规检测解决方案
  8. C#WebApi路由机制详解
  9. 那些容易遗忘的web前端问题
  10. ElasticSearch:图解ElasticSearch的搜索过程
  11. Android Camera open运行流程
  12. DeepLabv1补充:对全连接条件随机场(Fully Connected / Dense CRF)的理解
  13. 走进双亲委派机制LoadClass
  14. 如何根治BYOD中国式“水土不服”
  15. 定时器和for循环数组_59.for循环遍历数组、集合(含代码)
  16. c语言网格搜索,基于C
  17. 关于淘宝自动登陆的尝试——神烦笔记
  18. Xpose_HOOK入门教程
  19. 高性能diffpatch算法 -- 如何将微信Apk的官方增量包20.4M缩小到7.0M
  20. 系统架构师论文-图书馆网络应用体系安全设计

热门文章

  1. Oracle关于java.sql.SQLException常见错误集锦
  2. Hibernate Validator用法
  3. GT考试(bzoj 1009)
  4. Oracle调用接口(OCI)源码剖析(2):执行SQL语句并获取结果
  5. [转]iOS为UILabel添加长按复制功能
  6. S5PV210之Sate210-F DIY硬件,移植uboot,kernel,android 活动现在已经进入实施阶段吗,欢迎广大网友参与 !...
  7. RHEL6入门系列之二十七,源码安装及软件安装综合实例
  8. 帮助文档的数据库结构
  9. NAP客户端计算机隔离测试之五
  10. 自由自在意式手工冰淇淋,健康时尚的美味零食