You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python判断所有点是否在指定矩形内的代码返回值异常排查

问题根因

你的函数只在检测到存在点落在矩形外时显式返回了False,当所有待检测点遍历完成、没有触发越界返回分支时,Python函数没有显式指定返回值,会默认返回None,因此得不到预期的True。
另外现有逻辑存在隐藏缺陷:默认第一个角点的横、纵坐标均小于等于第二个角点,若传入的两个角点顺序颠倒(例如fc=(5,5)、sc=(0,0)),边界判断会完全失效。

修正后代码
def Functn1(fc=(0,0), sc=(0,0), p=[]):
    # 先计算矩形实际的坐标边界,兼容两个角点任意传入顺序
    left = min(fc[0], sc[0])
    right = max(fc[0], sc[0])
    bottom = min(fc[1], sc[1])
    top = max(fc[1], sc[1])

    for point in p:
        p_x, p_y = point
        # 任意点越界直接返回False
        if not (left <= p_x <= right and bottom <= p_y <= top):
            return False
    # 所有点校验通过,显式返回True
    return True

# 测试用例
print(Functn1((0,0), (5,5), [(1,1), (0,0), (5,5)]))
效果说明
  • 传入的所有点都在矩形内部或边界时,函数正确返回True
  • 存在任意点落在矩形外时,函数立即返回False
  • 不受两个角点传入顺序影响,逻辑鲁棒性更强

内容的提问来源于stack exchange,提问作者Randomletters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:54:21