一、我不是我

现在,我们在交互模式下分别定义两个变量:a,b,他们的值都等于200:

然后判断a和b是否是引用的同一对象,并打印出来:

很显然a和b引用的是同一对象,所以返回的结果为true

是不是觉得我在说废话!!!

下面就是见证奇迹的时候了:

我们再分别定义a和b,他们的值都等于257:

这个时候再判断是否是引用的同一对象:

竟然不是了!!!

这到底是为什么呢???

现在为你解答:

这其实是python的整数缓冲区导致的结果。

python在交互模式下,会对比较小的整数对象进行缓存([-5,256])

当我们定义的整数不在这个范围时,python会新生成一个对象,独占一个内存地址。

所以,虽然刚刚我们让a和b都等于了257,但因为是分别定义的,两个257的内存地址是不同的,所以a 不是b,返回False。

我们打印两个a和b的id就会发现,他们是不一样的:

如果我们判断a和b的值是否相等,那返回的就会是true:

或者通过:a=b=257,这样再通过is判断是否引用的同一对象,就不会返回False了

另外,通过编译器(Pycharm、idle)或者保存为文件执行时,结果是不一样的,这是因为解释器做了优化,不会因此分配新的内存地址。

二、空字符串的数量竟然不是零?

现在定义一个变量str1,等于:aabbc,然后打印a的数量:

str1='aabbc'
print("数量为:",str1.count("a"))
-----------------输出结果-----------------
数量为: 2

结果为str1中有两个a

现在又是见证奇迹的时候了!!!

我们打印空字符串的数量:

str1='aabbc'
print("数量为:",str1.count(""))
-----------------输出结果-----------------
数量为: 6

为什str1中有6个空字符串!!!

难道通灵了???

现在把str1的值改为:ab,再打印空字符串的数量

str1='ab'
print("数量为:",str1.count(""))
-----------------输出结果-----------------
数量为: 3

怎么又变成3了!!!

----------------------经过评论区大佬的解答,终于找到原因了----------------------

我们需要去看python的源码这种情况是怎么处理的

当我们通过count统计字符的数量时,会调用stringlib_count这个函数

而查询空字符串的时候,代表下图的sub_len=0

所以会执行下面的代码,会返回被查询字符串的长度+1


py源码中的写法

原来如此!!!

三、字符串是个列表?

我们定义一个变量a,它的值为:hello world:
a = 'hello world'

然后打印a[0]:

a = 'hello world'
print('a[0]的值为:',a[0])
-----------------输出结果-----------------
a[0]的值为: h

但是输出a的类型却是个str:

a = 'hello world'
print(type(a))
-----------------输出结果-----------------
a的类型为: <class 'str'>

其实字符串是字符的有序集合,可以通过其位置来获得具体的元素。
在 python 中,字符串中的字符是通过索引来提取的,索引从 0 开始。
当然也可以输入负值,表示从末尾提取,最后一个为 -1,倒数第二个为 -2:

a = 'hello world'
print('a的末尾字母为:',a[-1])
-----------------输出结果-----------------
a的末尾字母为: d

就是这么神奇!!!

分享暂时到这里,小伙伴们点赞、收藏、评论是对我最大的支持!!

四、往期文章回顾

python-20行代码将图片转素描画(附源码和成品下载地址)

python小爬虫-28行代码实现图形化在线翻译!

python-85行代码完成贪吃蛇和关卡升级:是男人就坚持到第10关!

那些让你惊掉下巴到肚皮上的python冷知识(一)相关推荐

  1. 那些让你惊掉下巴到肚皮上的python冷知识(二)

    目录 一. 解释器前缀提示还能修改? 二.奇怪的字典 三.增量赋值的秘密 四.我的方法已经return了!它却还再继续执行!! 觉得分享的不错小伙伴们可以三连一波!!

  2. 重庆php牛人,惊掉下巴!铅笔芯刻“牛”?这些牛人够牛气

    近日 外卖小哥将废旧易拉罐变艺术品 小伙在铅笔芯上刻出一头"牛" -- 一些民间"牛人"各显神通 让网友直呼"高手" 来看! 废旧易拉罐变艺 ...

  3. 小黑查重后惊掉下巴,晚上准备跟小元同学吃烧烤的leetcode之旅:17. 电话号码的字母组合

    小黑代码(与官方题解思路一致) class Solution:def letterCombinations(self, digits: str) -> List[str]:# 字符串长度n = ...

  4. 欧几里得算法求最大公约数之惊掉下巴的代码简化(纯C语言)

    欧几里得算法求最大公约数也叫辗转相除法. 证明 有两个数a,b,且a = kb + r(a,b,k,r皆为正整数,且r<b) 假设d为a,b的一个公约数 而r = a - kb,两边同时除以d, ...

  5. 大众点评字体_点评里的神笔马良!她的美食笔记会让你惊掉下巴!

    在点评刷了太多有趣有料的内容,看过那么多美食照片.高颜值达人,点评君已经很难大惊小怪了,直到--这个探店笔记定格在手机屏幕上! -滑动查看更多- 这么神仙的笔记到底出自谁手呢?当点评君打开达人的主页, ...

  6. AI 预测世界杯比赛结果,惊掉下巴

    哈喽,大家好. 今天看到Kaggle上有一个预测世界杯比赛结果的项目,截至目前 4 场比赛预测结果全中. 今天把源码研究了一下,做了中文注释,给大家分享下. 文章目录 技术提升 1. 获取数据集 2. ...

  7. 惊掉下巴!天津学手绘插画培训让你踏进高薪行列

    好多朋友都问小筑,一个小小的插画师能赚多少钱,怎么可能能让我踏进高薪行列呢.朋友们可别小瞧了这手绘插画行业,现在走在大街上,目光所及之处都有插画的身影,目前行业内手绘插画师紧缺人才,那为什么我的工资不 ...

  8. 如何删除tmp计算机桌面,桌面上的文件删不掉_我桌面上突然多了一个tmp结尾的文件桌面删除都删除......

    桌面上的文件 删不掉怎么办 为什么桌面上有些文件删不掉 我电脑桌面上有个文件夹,删除不掉怎么办? 我的电脑桌面上文件夹删不掉 解决我的电脑桌面上文件夹删不掉的步骤如下: 1.首先在我们的电脑桌面上找到 ...

  9. 一个牛逼到惊掉你下巴的工具类 -- AndroidUtilCode

    这个工具类基本涵盖了开发中所有能用到工具类,旨在快速开发,废话不多说,直接上API: API之前,还是需要先添加依赖: implementation 'com.blankj:utilcode:1.26 ...

最新文章

  1. Mac快速显示桌面快捷键
  2. C++ string字符串比较问题
  3. 单色半透明-兼容IE7
  4. 产生10个1-100的随机数,并放到一个数组中, 把数组中大于等于10的数字放到一个list集合中,并打印到控制台。
  5. python 最小二乘法_最小二乘法及其python实现详解
  6. 优酷《追光吧!》正式开播 风度、实力成关键词
  7. 万达辟谣王健林去世:已报警!造谣账号已封禁
  8. oracle多条数据合并成一条_建议将北京地铁13-B线和28号线合并成一条线
  9. 扎克伯格5小时听证鏖战:五大焦点,四处尴尬,一次耿直CEO笑翻全场
  10. 软件测试 - V模型、W模型、H模型、X模型
  11. UE4是什么?虚幻4引擎是什么?
  12. 四分之一波长传输线应用举例
  13. 马翔:联想双态IT 助力企业IT新变革
  14. 背包那些经典的例子( 上 )
  15. PLC从业人员的发展方向
  16. cpu飙高1000,几近崩溃
  17. 机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN)
  18. 联盛德 HLK-W806 (十): 在 CDK IDE开发环境中使用WM-SDK-W806
  19. 零信任体系下的企业数据安全建设路径
  20. mist linux安装位置,Mist(以太坊浏览器)

热门文章

  1. 智能手机王者---摩托罗拉XT800
  2. jpa学习(哔哩哔哩中:黑化肥发灰挥发会发飞)
  3. 魔改linux教程,[经验]Ubuntu Linux 魔改手册
  4. 直男福音-让AI帮你识别女朋友是否在生气
  5. 使用ego1的xadc采集心电模块的输出并用vga显示
  6. AWS EC2压测及实例性能
  7. 局域网内多台windows设备共用一套键鼠【微软官方】Mouse without Borders 2.2.1.0327
  8. Android制作微信登录功能,Android 实现微信登录详解
  9. 如何把微课应用到计算机课堂,如何把微课运用于小学数学教学之中
  10. oracle+默认安装目录,Oracle11g安装与卸载教程