在 Python 中,正无穷大和负无穷大可以使用 float('inf')float('-inf') 来表示。它们在科学计算和算法中非常有用,特别是在处理极端情况或确保算法的鲁棒性时。

正无穷大和负无穷大的定义

positive_infinity = float('inf')
negative_infinity = float('-inf')

比较操作

正无穷大大于任何有限数,负无穷大小于任何有限数。

print(positive_infinity > 1e308)  # 输出: True
print(negative_infinity < -1e308)  # 输出: True

数学运算

与无穷大的运算结果通常是无穷大,除非遇到一些特殊情况。

print(positive_infinity + 1000)  # 输出: inf
print(negative_infinity * 2)     # 输出: -inf
print(positive_infinity - positive_infinity)  # 输出: nan (not a number)

初始化极值

在某些算法中,可以使用无穷大来初始化最小值和最大值。

numbers = [10, 200, 30, -40, 50]
 
min_value = float('inf')
max_value = float('-inf')
 
for num in numbers:
    if num < min_value:
        min_value = num
    if num > max_value:
        max_value = num
 
print("Minimum value:", min_value)  # 输出: Minimum value: -40
print("Maximum value:", max_value)  # 输出: Maximum value: 200

检查无穷大

使用 math.isinf() 函数可以检查一个数是否为无穷大。

import math
 
print(math.isinf(positive_infinity))  # 输出: True
print(math.isinf(negative_infinity))  # 输出: True
print(math.isinf(12345))              # 输出: False

示例代码

以下是一个完整的示例代码,展示了如何使用正无穷大和负无穷大。

import math
 
# 定义正无穷大和负无穷大
positive_infinity = float('inf')
negative_infinity = float('-inf')
 
# 比较操作
print(positive_infinity > 1e308)  # 输出: True
print(negative_infinity < -1e308)  # 输出: True
 
# 数学运算
print(positive_infinity + 1000)  # 输出: inf
print(negative_infinity * 2)     # 输出: -inf
print(positive_infinity - positive_infinity)  # 输出: nan (not a number)
 
# 初始化极值
numbers = [10, 200, 30, -40, 50]
min_value = float('inf')
max_value = float('-inf')
 
for num in numbers:
    if num < min_value:
        min_value = num
    if num > max_value:
        max_value = num
 
print("Minimum value:", min_value)  # 输出: Minimum value: -40
print("Maximum value:", max_value)  # 输出: Maximum value: 200
 
# 检查无穷大
print(math.isinf(positive_infinity))  # 输出: True
print(math.isinf(negative_infinity))  # 输出: True
print(math.isinf(12345))              # 输出: False

使用正无穷大和负无穷大在科学计算和算法中非常有用,可以帮助处理极端情况并确保算法的鲁棒性。