gpt4 book ai didi

python - 是文件中的运算符 python

转载 作者:行者123 更新时间:2023-11-30 23:14:52 24 4
gpt4 key购买 nike

刚遇到这个问题,很困惑!我的代码只是想比较 song[-3:] is "mp3" ,如果我不使用 is ,它会通过,但通过我所有的耐心对于我无法理解的事情,我发现了一种奇怪的行为。我了解到 is 应该测试两个事物是否是相同的实例或其他什么,但是当值相同时,为什么,哦为什么,它会失败?当我测试一行和另一行上两个字符串的 id 时,使用 is 运算符,然后使用 == 运算符:

>>> id("String"[-3:]), id("String"[-3:])
(4347723880, 4347723880)
>>> id("String"[-3:])
4347241952
>>> "String"[-3:] is "String"[-3:]
False
>>> "String"[-3:] == "String"[-3:]
True

所以我想我的问题是,为什么当我使用 is 时,或者在单独的行上测试时,id 会改变,但在同一行上时却不会改变?这是一些奇怪的异常,还是我的疏忽?

最佳答案

is 测试它们是否是相同的字符串,而不仅仅是相同的字符串。由于字符串是不可变的,因此如果您要求具有相同值的字符串,Python 可以选择重用旧字符串 - 您会遇到一些情况,它确实选择这样做。正如您所见,情况并非总是如此。无法保证何时发生的规则。为了在所有情况下获得正确的结果,只要您的意思是“这些字符串是否具有所有相同的字母”,请使用 str1 == str2

关于python - 是文件中的运算符 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28536222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com