鱼C论坛

 找回密码
 立即注册
查看: 2963|回复: 8

字符串

[复制链接]
发表于 2016-5-10 11:17:51 | 显示全部楼层 |阅读模式
1鱼币
a = ‘123’ b = '123'  a is b 返回True  
a = '1 1'   b = '1 1' a is b 返回False
书上说这种字符串复杂程度不同导致了不同的结果
请问,什么样的该是相同的 什么样的该是不同的 有具体的评判标准么

最佳答案

查看完整内容

2楼回答的对。 is是以id地址是否相同判断的。python把常用的放在一个内存区域里,不管给多少变量赋值为常用值,都是一个地址,比如整数中 的256以内。 如果这么简单就不算python给我们挖坑了,再看看下面的例子 怎么又相同了?! 所以用is判断一定要慎之又慎!!!可能的话还是用==判断为好。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-10 11:17:52 | 显示全部楼层
2楼回答的对。
is是以id地址是否相同判断的。python把常用的放在一个内存区域里,不管给多少变量赋值为常用值,都是一个地址,比如整数中 的256以内。
  1. >>> a = 256
  2. >>> b = 256
  3. >>> id(a)
  4. 1684555520
  5. >>> id(b)
  6. 1684555520
  7. >>> c = 257
  8. >>> d = 257
  9. >>> id(c)
  10. 53044144
  11. >>> id(d)
  12. 53044128
复制代码

如果这么简单就不算python给我们挖坑了,再看看下面的例子
  1. >>> e = 257; f = 257
  2. >>> id(e)
  3. 53044352
  4. >>> id(f)
  5. 53044352
复制代码

怎么又相同了?!
所以用is判断一定要慎之又慎!!!可能的话还是用==判断为好。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-10 11:38:56 | 显示全部楼层
好像是在python里,常用字符串只保留一个,如"123"是常用字符串,所有“123”在python里只有一份,而 "1 1" 这样的字符串不在常用字符串里,所有会创建多份。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-13 15:15:01 | 显示全部楼层
不明白原因,刚进入学习PYTHON 阶段。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-16 09:58:36 | 显示全部楼层
加油

评分

参与人数 1荣誉 -10 鱼币 -10 收起 理由
冬雪雪冬 -10 -10 严禁灌水

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-3 16:28:31 | 显示全部楼层
冬雪雪冬 发表于 2016-5-10 12:34
2楼回答的对。
is是以id地址是否相同判断的。python把常用的放在一个内存区域里,不管给多少变量赋值为常 ...

厉害,赞~!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-3 22:28:56 | 显示全部楼层
涨姿势了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-5 18:00:39 | 显示全部楼层
向二楼学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-19 23:51:42 | 显示全部楼层
二楼,能讲一下为什么它要相同了?????????
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-20 23:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表