maximum = max(1, 1.25, 3.14, 'a', 1000)- 为什么要给出'a'答案?不应该'a'转换为ASCII并进行检查?
maximum = max(1, 2.15, "hello")给出"hello"答案.这个答案是怎么来的?
Ana*_*mar 12
从文档 -
CPython实现细节:除了数字之外的不同类型的对象按其类型名称排序; 不支持正确比较的相同类型的对象按其地址排序
因此str总是大于int.
更多例子 -
>>> class test:
... pass
...
>>> t = test()
>>> 'a' > 5
True
>>> t > 'a'
False
>>> type(t)
<type 'instance'>
>>> t > 10
False
>>> type(True)
<type 'bool'>
>>> True > 100
False
>>> False > 100
False
Run Code Online (Sandbox Code Playgroud)
请注意的类型名称test类的对象instance,这就是为什么t > 5是False.
因为Python 2中的字符串总是大于数字.
>>> "a" > 1000
True
Run Code Online (Sandbox Code Playgroud)
在Python3中它实际上是固定的,它们现在是无法比拟的(因为实际上没有办法比较42和"狗").
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |