最近在用python写图数据结构相关算法的时候遇到一个问题:使用邻接矩阵结构来存储图的边集合,其中如果两个顶点之间不存在边,那么这个坐标系的权值就用一个无限大的整数来代替。
那么在python中如何声明一个变量为无限大的整型数据呢?
如果是Python 3.5以上的版本,使用:
import math
inf = math.inf
如果是3.5之前的版本可以使用:
inf = float('inf')
这样子赋值之后,inf
变量就是一个无限大的整型数据,大于任何一个标准的整型数据,除非被比较的数据:
- 也是一个math.inf常量
- 或者是一个非整型的数据(此时会抛TypeError异常)
print(inf > 1) # True
print(inf > 10000000000) # True
print(inf > math.inf) # False
print(inf > '3') # TypeError: '>' not supported between instances of 'float' and 'str'
以上math.inf
是等价于float('inf')
的,如果需要生成一个负无穷大的整型,只需要使用-math.inf
即可。
完!
参考资料:
python-doc math.inf
How can I represent an infinite number in Python?
网友评论