Python中检测点列表是否形成直线的程序

Python中检测点列表是否形成直线的程序

假设我们在笛卡尔平面中有一个坐标点列表,我们需要检查这些坐标点是否形成一条直线段。

因此,如果输入是类似于 coordinates = [(5,5),(8,8),(9,9)],则输出为True,因为这些点形成具有斜率1的线段。

要解决此问题,我们将遵循以下步骤-

  • (x0,y0):= coordinates [0]
  • (x1,y1):= coordinates [1]
  • 对于范围为2到坐标列表大小-1的 i,执行以下操作
    • (x,y):= coordinates [i]
    • 如果(x0 – x1) * (y1 – y)不同于(x1 – x) * (y0 – y1),那么
      • 返回False
  • 返回True

以下是示例代码以获得更好的理解-

更多Python相关文章,请阅读:Python 教程

示例

class Solution:
   def solve(self, coordinates):
      (x0, y0), (x1, y1) = coordinates [0],coordinates[1]
      for i in range(2,len(coordinates)):
         x,y = coordinates [i]
         if(x0 - x1) * (y1 - y)!= (x1 - x) * (y0 - y1):
            返回False
      返回True
ob = Solution()
coordinates = [[5,5],[8,8],[9,9]]
print(ob.solve(coordinates))

输入

[[5,5],[8,8],[9,9]]

输出

True

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程