如何简洁验证Python浮点结果是否处于指定整数的±1范围内?
简洁实现方法
针对你的需求,有两种非常简洁的Python实现方式,逻辑简单易懂,适合数学基础薄弱的情况:
方法一:区间范围判断
直接检查结果是否落在任意一个预期整数的[num-1, num+1]闭区间内,用any()函数快速判断是否存在符合条件的区间:
# 定义需要检查的预期整数列表 expected_numbers = [20, 50, 80, 100] # 你的函数返回的浮点结果 result = 19.808954 # 验证逻辑:只要有一个预期数的±1区间包含result,就返回True is_valid = any(num - 1 <= result <= num + 1 for num in expected_numbers) print(is_valid) # 输出:True
方法二:绝对值差值判断(更直观)
通过计算结果与预期整数的绝对差值是否≤1来判断,逻辑更直白:
expected_numbers = [20, 50, 80, 100] result = 19.808954 # 绝对差值≤1,说明result在num的±1范围内 is_valid = any(abs(result - num) <= 1 for num in expected_numbers) print(is_valid) # 输出:True
逻辑说明
any()函数会遍历expected_numbers里的每个整数,逐个验证条件- 只要有一个整数满足“result在它的±1范围内”,
any()就返回True(验证通过);若所有整数都不满足,则返回False - 两种方法都支持边界值,比如
result=21或result=19这类临界值,都会被判定为验证通过
内容的提问来源于stack exchange,提问作者Al Grant
相关产品推荐
相关产品推荐

