正确答案是:D: True True False
分析如下:
1. `a = 2` 和 `b = 2`:在Python中,小整数对象(通常是-5到256之间的整数)会被缓存,因此`a`和`b`指向的是同一个对象。`a == b`比较的是值,所以结果是`True`,`a is b`比较的是对象的身份(即是否是同一个对象),由于小整数缓存机制,结果也是`True`。
2. `c = 2.0`:这里`c`是一个浮点数对象,与`a`和`b`是整数对象不同。虽然`a == c`会返回`True`(因为2和2.0在数值上是相等的),但是`a is c`会返回`False`,因为它们是不同类型的对象,存储在不同的内存位置。
因此,最终的输出是:`True True False`。