ipad上用python编程,python苹果手机编译器

  ipad上用python编程,python苹果手机编译器

  介绍

  你不知道Python里的“是”和“==”吧?它经常被用来比较变量和字面量。有什么区别?在什么情况下应该使用is?在什么情况下应该使用==呢?这成了很多人心中的一个谜题。

  Is:通常用于确定变量是否为None。

  一个

  2

  三

  四

  五

  6a=无

  a是无

  真实的

  b=1

  b是无

  骗子

  另一方面,在判断一个变量是否为文字量时,比如是否为数值,我们通常用==:

  一个

  2

  三

  四

  5a=0

  a==0

  真实的

  a==1

  骗子

  要解决以上疑惑,我们首先需要了解什么是和==是。

  什么是“是”和“==”

  Is用于检查同一性,即两个变量是否指向同一个对象。

  ==用于检查两个变量的值是否相等。

  身份也意味着价值观的平等。因为它们都指向同一个对象,所以值必须相等。但恰恰相反。

  __eq__魔法方法

  ==用来检查值的等价性,那么如何比较两个对象的值呢?

  关于比较基本类型对象的值的信息很容易理解。例如,比较列表对象[1,2,3]的值是比较列表的长度和列表中每个元素的值。

  但是,对于自定义对象,如何比较值呢?__eq__(自己,其他)魔法的方法就介绍到这里了。对象的==逻辑可以这样实现。例如:

  一个

  2

  三

  四

  五

  六

  七

  八

  九

  10

  11classfoo(对象) :def __eq__(自己,其他) :返回True。

  foo=Foo())

  foo==1

  真实的

  foo==无

  真实的

  foo是无

  骗子

  上面的例子定义了Foo类并实现了__eq__(self,other)方法。这总是返回True。这意味着任何对象===的值比较结果为True。另一方面,当进行身份比较时,例如与None进行比较,它返回False,因为它不是同一个对象。

  风景示例

  示例1:比较同一对象的变量1

  2

  三

  四

  五

  6a=[ 1,2,3 ]

  因为b=a # b指向A,A指向[1,2,3],B指向同一个[1,2,3]

  b是a

  真实的

  b==a

  真实的

  在上面的例子中,A和B指向同一个list对象[1,2,3],所以如果对它们使用is和==的话,结果为真。

  示例2:指向不同对象的变量的比较1

  2

  三

  四

  五

  6a=[ 1,2,3 ]

  B=a[:] # b复制a指向的列表,生成一个新的[1,2,3]

  b是a

  骗子

  b==a

  真实的

  在上面的例子中,B指向A的副本,这意味着使用is的结果是False,因为A和B指向两个不同的对象。但是,因为值相等,所以使用==的结果为真。

  例3:单词1的变体比较

  2

  三

  四

  五

  六

  七

  八

  九

  10

  11

  12

  13

  14a=256

  B=256 #和A指的是同一个字面量256

  Isb #表示指向同一个对象。

  真实的

  a==b

  真实的

  g

  t;

  a=257

  b=257

  a==b

  真实的

  Isb #表示指向不同的对象。

  错误的

  一般来说,两个变量指向字面量,它们的比较应该用==而不是is,否则可能会出现类似上例的混淆。

  在Python的交互式解释器中,可能经常使用的整数对象是在范围[-5,256]内指定的,它们在创建时会被缓存。但是,每当您需要再次使用它们时,您将从缓存中获取它们,而不是重新创建它们。

  当a和b都指向同一个文本256时,A is b返回True。这是因为当声明b=256时,256整数对象是从缓存中取出而不是重新创建的,所以A和B指向同一个整数对象。

  当a和b都指向同一个文字257时,a is b返回False。这是因为当声明b=257时,257整数对象没有缓存而是重新创建,所以A和B指向不同的整数对象。

  同样,如果文字是字符串,结果也是类似的。

  一个

  2

  三

  四

  五

  六

  七

  八

  九

  10

  11

  12a=python.org

  b=python.org

  a是b

  错误的

  a==b

  真实的

  皮索诺格

  b=皮索诺格

  a是b

  真实的

  a==b

  真实的

  Python 3.8简介是比较字面量乘以语法警告

  鉴于使用is来比较文字量实际上是不正确的,在Python 3.8的发行说明中,引入了以下内容:

  现在,当标识检查(是和不是)与某些类型的文字(如字符串、数字)一起使用时,编译器会生成语法警告。这些在解释器中经常会偶然发生,但是语言规范并不保证。该警告建议用户使用相等测试(==还有!=)代替。(由塞尔希斯托尔恰卡在bpo-34850中提供。)

  因此,当我们使用存在去比较数字、字符串等字面量时,就会报语法警告:

  一

  2

  3

  四

  5x=200

  x是200

  回溯(最近一次呼叫):

  文件""中的第一行

  语法警告:"是"带有文本。你是说==吗?

  总结

  说了这么多,其实我们只需要记住如下两点:

  当要比较值是否相等时,请用==。

  当要比较是否是同一个对象时,请用是。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 微博照片水印设置苹果教程怎么设置,苹果手机微博照片水印怎么设置
  • 喜马拉雅怎么取消自动续费会员苹果手机,喜马拉雅怎么取消自动续费会员微信
  • 清理大师如何恢复删除的照片和视频,清理大师如何恢复删除的照片苹果手机
  • 不能打开要写入的文件怎么办苹果手机,什么叫不能打开要写入的文件
  • 迅雷下载资源连接不上怎么办苹果手机,迅雷下载时连接不了资源怎么办
  • 台式电脑无法上网怎么办苹果手机,台式电脑无法上网怎么解决
  • 苹果icloud购买空间怎么取消,苹果手机icloud储存空间购买取消
  • ios15更新的机型,苹果手机更新系统ios15
  • 怎么切换360浏览器模式苹果手机,如何切换360浏览器模式
  • 苹果手机小红书怎么设置动态壁纸,OPPO手机小红书怎么设置动态壁纸
  • 迅雷无法下载怎么解决 系统策略,迅雷无法下载怎么解决苹果手机
  • 苹果手机性能测试,手机性能测试工具怎么用,苹果手机测试性能软件
  • 苹果手机上的python编程软件,用手机编程python的软件
  • 苹果手机如何导出微信聊天记录已删好友的,苹果手机怎么恢复已删好友的聊天记录
  • 苹果如何安装已经卸载的软件,苹果手机软件卸载了还有怎么办
  • 留言与评论(共有 条评论)
       
    验证码: