gpt4 book ai didi

python-2.x - Python2 - 在 None 类型上使用最小值/最大值

转载 作者:太空狗 更新时间:2023-10-29 19:37:45 26 4
gpt4 key购买 nike

我注意到虽然 'max' 函数在 None 类型上表现良好:

In [1]: max(None, 1)
Out[1]: 1

'min' 函数不返回任何内容:

In [2]: min(None, 1)
In [3]:

可能是因为 min(None, 1) 没有定义?那么为什么在最大情况下,它返回数字呢?None 是否被视为“-infinity”?

最佳答案

正如 jamylak 所写,None 根本不会由 Python shell 打印。

这很方便,因为所有函数都有返回值:当没有指定值时,它们返回None:

>>> def f():
... print "Hello"
...
>>> f()
Hello
>>> print f() # f() returns None!
Hello
None

这就是 Python shell 不打印返回 None 值的原因。不过,print None 不同,因为它明确要求 Python 打印 None 值。


至于比较,None 被认为是-infinity。

general rule对于 Python 2,无法以任何有意义的方式进行比较的对象在比较时不会引发异常,而是返回一些任意结果。对于 CPython,任意规则如下:

Objects of different types except numbers are ordered by their type names; objects of the same types that don’t support proper comparison are ordered by their address.

Python 3 引发异常,用于无意义的比较,如 1 > None 和通过 max(1, None) 完成的比较。


如果您确实需要 -infinity,Python 提供了 float('-inf')

关于python-2.x - Python2 - 在 None 类型上使用最小值/最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523555/

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