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