单选题
下列表达式的值为True的是?( )。
A
True>2
B
3>2>2
C
(‘3’,‘2’)<(‘33’,‘22’)
D
‘abc'>‘xyz’
答案解析
正确答案:C
解析:
这道题考查的是 Python 中不同数据类型的比较规则,包括布尔值与整数的比较、链式比较、元组比较以及字符串比较。我们需要逐一分析每个选项的表达式及其计算结果。
**选项 A: `True > 2`**
在 Python 中,布尔类型 `bool` 是整数类型 `int` 的子类。`True` 在数值比较中等同于 `1`,`False` 等同於 `0`。
因此,表达式 `True > 2` 等价于 `1 > 2`。
显然,1 不大于 2,所以该表达式的值为 **False**。
**选项 B: `3 > 2 > 2`**
Python 支持链式比较操作符。表达式 `3 > 2 > 2` 等价于 `(3 > 2) and (2 > 2)`。
- 第一部分 `3 > 2` 为 `True`。
- 第二部分 `2 > 2` 为 `False`(2 等于 2,并不大于 2)。
- 最终结果为 `True and False`,即 **False**。
**选项 C: `('3', '2') < ('33', '22')`**
这是两个元组之间的比较。元组比较遵循“字典序”规则:从第一个元素开始逐个比较,如果第一个元素能分出大小,则直接返回结果;如果相等,则比较下一个元素,依此类推。
- 比较第一个元素:字符串 `'3'` 和 `'33'`。
- 字符串比较也是按字典序(基于 ASCII 码或 Unicode 编码)逐字符进行比较。
- 第一个字符都是 `'3'`,相等。
- 字符串 `'3'` 长度为 1,已经结束;字符串 `'33'` 还有后续字符。
- 在 Python 中,短字符串如果是长字符串的前缀,则短字符串小于长字符串。即 `'3' < '33'` 为 **True**。
- 因为第一个元素已经分出大小(`'3' < '33'`),所以不再比较后续元素。
- 整个元组比较结果为 **True**。
**选项 D: `'abc' > 'xyz'`**
这是两个字符串之间的比较,同样遵循字典序。
- 比较第一个字符:`'a'` 和 `'x'`。
- 在 ASCII 码表中,`'a'` (97) 小于 `'x'` (120)。
- 因此,`'abc'` 小于 `'xyz'`,即 `'abc' < 'xyz'` 为 True,而 `'abc' > 'xyz'` 为 **False**。
**综上所述:**
- A 为 False
- B 为 False
- C 为 True
- D 为 False
故正确答案为 **C**。
相关知识点:
(‘3’,‘2’)<(‘33’,‘22’)为真
题目纠错
2023电力行业多旋翼无人机竞赛
