我想用Python计算线段的长度(任意数量)。我使用了下面的代码,但是我遇到元组不能将减法作为操作数。我怎样才能克服呢?我想知道我是否错过了任何重要的Python概念。在from itertools import starmap

import math

class Point(object):

def __init__(self,x,y):

self.x=x

self.y=y

def move(self,dx,dy):

self.x+=dx

self.y+=dy

class LineString(object):

def __init__(self,*args): # A method with any number of arguments, args

self.args=[Point(*args) for p in args] # A list of Points

def length(self):

pairs=zip(self.args, self.args[1:])

return sum(starmap(distance,pairs))

def distance(p1, p2):

a = p1.x,p1.y

b = p2.x,p2.y

print (math.sqrt((a[0]-b[0])**2-(a[1]-b[1])**2))

# calculates distance between two given points p1 and p2

return math.sqrt((a** 2)+ (b** 2))

if __name__ == '__main__':

# Tests for LineString

# ===================================

lin1 = LineString((1, 1), (0, 2))

assert lin1.length() == sqrt(2.0)

lin1.move(-1, -1) # Move by -1 and -1 for x and y respectively

assert lin1[0].y == 0 # Inspect the y value of the start point.

# Implement this by overloading __getitem__(self, key) in your class.

lin2 = LineString((1, 1), (1, 2), (2, 2))

assert lin2.length() == 2.0

lin2.move(-1, -1) # Move by -1 and -1 for x and y respectively

assert lin2.length() == 2.0

assert lin2[-1].x == 1 # Inspect the x value of the end point.

print ('Success! Line tests passed!')

python求线段长度_如何用python求线段长度相关推荐

  1. python 矩阵运算 for循环_如何用 Python 科学计算中的矩阵替代循环

    展开全部 因为在Mathematica中使用循环确实是低效的.32313133353236313431303231363533e78988e69d8331333361313961..... 深层次的原 ...

  2. python可视化迷宫求解_如何用 Python 制作一个迷宫游戏

    相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至耗费数天,然后可能还要分别从入口和出口两头寻找才能找的到通路,甚至也可能找不到通路. 虽然 ...

  3. 如何用python画爱心型线_如何用python画爱心

    用python绘制爱心的基本步骤如下: 首先先下载安装好python程序. 在我们自己的电脑上找到python 的IDLE工具. 2.然后打开IDLE,新建一个文件,命名为test1.py. 3.接着 ...

  4. python 文本翻译 项目_如何用python批量翻译文本?

    首先,看一下百度翻译的官方api文档. http://api.fanyi.baidu.com/api/trans/product/apidoc # coding=utf-8 #authority:bi ...

  5. python搭建自动化测试平台_如何用python语言搭建自动化测试环境

    原标题:如何用python语言搭建自动化测试环境 技术分享:基于Python语言的Web自动化测试环境搭建 近期发现很多初学者在学习自动化的过程当中,在环境安装环节总是出现问题,所以详细的出一篇环境搭 ...

  6. 如何制作python检查小软件_如何用Python制作整蛊小程序

    原标题:如何用Python制作整蛊小程序 下面的整蛊程序,千万不要发代码,否则就实现不了你整蛊的目的了.完成后一定要打包成一个exe程序,再发给朋友使用 . 1. 使用 pip install pyi ...

  7. python rest api 测试_如何用Python编写REST API的单元测试

    在过去的几个月中,正在从事一个名为B的项目.它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章.B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些 ...

  8. python的out模式_如何用python中的DataFrame列的模式替换NA值?

    我对Python(和本网站)完全陌生,目前正试图用它们的模式替换特定数据帧列中的NA值.我试过了各种不起作用的方法.请帮我看看我做错了什么:如何用python中的DataFrame列的模式替换NA值? ...

  9. 用python做一张图片_如何用python下载一张图片

    如何用python下载一张图片 这里要用到的主要工具是requests这个工具,需要先安装这个库才能使用,该库衍生自urllib这个库,但是要比它更好用.多数人在做爬虫的时候选择它,是个不错的选择. ...

  10. 用python处理excel表格_如何用python处理excel数据 | 用python处理excel表格数据类型

    python 读取EXCEL文件中的数据格式 扩展库 xlrd 读excle xlwt 写excle 直上搜就能下载 下载后使用 import xlrd 就可以读excle了 打开文件: xls = ...

最新文章

  1. px、em、rem、vw、vh、vm、rpx这些单位的
  2. XamarinSQLite教程添加索引
  3. idea关联mysql失败_Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezon‘
  4. 北京、广东重名数量查询工具,给孩子起名重名查询
  5. matlab生成exe-在没有安装matlab的电脑上运行matlab生成的exe
  6. Fortinet再获Gartner 2021广域网边缘基础设施魔力象限领导者
  7. cannot resolve symbol什么意思_JavaScript异步编程实现之一:Promise对象是什么?对resolve理解...
  8. hadoop集群免密码登陆
  9. 北京大学计算机语言学,基于认知的汉语计算语言学研究_袁毓林pdf
  10. Android网络验证逆向,【Android逆向】去除无聊的网络验证弹窗与360加固
  11. (附源码)Springboot小型仪器公司生产管理系统 毕业设计 031853
  12. 拷优(CopyU!)mini独家具备穿透U盘防拷贝软件的功能!
  13. 激光雷达3D建模---读书笔记
  14. 多线程处理大量数据 java
  15. php deel views,全量修改文件App名称和改动views位置设置
  16. 将数字编号翻译为英文编号(python)实现
  17. “买家秀“与“卖家秀”
  18. Revit二次开发2、RevitAPI、RevitAPIUI及Revit开发三大利器
  19. 攻防世界 Misc 功夫再高也怕菜刀 参考大佬的wp
  20. 利用ArcGIS提取MODIS数据的像元坐标

热门文章

  1. Access的DateAdd 函数
  2. SULLEY安装与使用
  3. 关于正则表达式中的 lookahead
  4. 如何自动生成参考文献格式
  5. 程序员过失泄露代码违法吗_软件过失的23种模式
  6. Linux 进程内存布局(一)
  7. 中国最大的“隐形首富”,掌舵中国最大汽车集团,身价高达760亿
  8. 小白前端学习流程【爱创课堂专业前端培训】
  9. 网络安全课程设计_网络规划
  10. 自动提交flag-python