2024-10-04 11:24:00 发布
网友
我无法计算下列程序的输出
big_num_1 = 1000 big_num_2 = 1000 small_num_1 = 1 small_num_2 = 1 big_num_1 is big_num_2 # False small_num_1 is small_num_2 # True
上面发生了什么? 为什么一个是假的另一个是真的。你知道吗
资料来源:https://luminousmen.com/post/python-interview-questions-senior
因为is比较两个对象的同一性(也就是说,如果它们是完全相同的对象),所以您要测试相等性,为此必须使用==运算符:
is
==
big_num_1 == big_num_2 => True small_num_1 == small_num_2 => True
如果您想知道为什么这个例子有效:
small_num_1 is small_num_2 => True
这是因为Pythoncaches在内部很小(介于-5和256之间)int对象,所以比较中使用的对象是从缓存中获取的,并且是相同的。big_num_1和big_num_2大于256,因此它们由两个不同的对象表示,标识测试失败。你知道吗
int
big_num_1
big_num_2
因为
is
比较两个对象的同一性(也就是说,如果它们是完全相同的对象),所以您要测试相等性,为此必须使用==
运算符:如果您想知道为什么这个例子有效:
这是因为Pythoncaches在内部很小(介于-5和256之间)
int
对象,所以比较中使用的对象是从缓存中获取的,并且是相同的。big_num_1
和big_num_2
大于256,因此它们由两个不同的对象表示,标识测试失败。你知道吗相关问题 更多 >
编程相关推荐