python输入多个坐标点_判断多个坐标是否在同一条直线上|Python练习系列[13]

练习内容:判断多个坐标是否在同一条直线上

完整代码和注释如下

print('请输入几个点的横纵坐标,程序将会返回这几个点是否在同一条直线上')

def coor_nums():#获得每个值的横纵坐标

int_list=[]#初始化坐标列表

wrong_list=[]#初始化错误列表

judgement=''#判断是否需要修正坐标值

while True:

nums=input('应以x1 y1 x2 y2...的格式输入:\n')

num_list=nums.split()

if len(num_list)%2!=0:#如果输入的坐标长度不是偶数 说明输入错误

print('请输入每个点的横纵坐标')

continue

for n in num_list:#对输入的每个值

try:

num=float(n)

int_list.append(num)#尝试将输入的值转为浮点类型添加到坐标列表中

except Exception as e:#如果发生异常

print('你输入的第'+str(num_list.index(n)+1)+'个值为:'+n+',它不是数字 请按照要求输入')#提示修改

wrong_list.append([num_list.index(n),n])#将错误坐标值的索引和错误坐标值都添加到错误列表

int_list.append(n)#同时也将错误坐标值添加到坐标列表 便于修改

judgement='need'#判断为need 即需要修改

return int_list,wrong_list,judgement

int_list,wrong_list,judgement=coor_nums()

def adjust(wrong_list):#调整错误列表并且修改对应坐标列表

right_list=[]#初始化修改后的列表

for wrong_num in wrong_list:#对于每个错误值

while True:#循环修改直到修改正确

right_num_input=input('正在修改第{}个值,原值为:{},现值为:\n'.format(wrong_num[0]+1,wrong_num[1]))

try:

right_num=float(right_num_input)

right_list.append([wrong_num[0],right_num])#将修改值添加到正确列表

break

except Exception as e:

print('修改值仍然错误,请再次修改')

continue

return right_list

def k_line_judge(int_list,wrong_list,judgement):#判断输入点是否在同一条直线

if judgement=='need':#如果为need则需要调整初次输入的坐标值

right_list=adjust(wrong_list)

for n in right_list:

int_list[n[0]]=n[1]#把每个修改后的值赋予坐标列表

point_judge=list(set(int_list))

if len(point_judge)==1:#如果输入的每个值相同 说明是同一个点

return print('所有点是同一个点 为({},{})'.format(point_judge[0],point_judge[0]))

k_list=[]#初始化直线斜率列表

for n in range(3,len(int_list),2):#处理坐标列表

try:

k=(int_list[n]-int_list[n-2])/(int_list[n-1]-int_list[n-3])#斜率公式k=(y2-y1)/(x2-x1)

k_list.append(k)#尝试向斜率列表中增加每两个点的斜率

except ZeroDivisionError as e:#如果出现了x2-x1=0的情况 暂时先略过

pass

if n==len(int_list)-1 and len(k_list)==0:#如果循环到最后 直线斜率列表长度仍然为0

return print('所有点在直线x={}上'.format(int_list[0]))#说明输入的坐标都在直线x=x1上

set_k_list=list(set(k_list))

if len(set_k_list)==1 and set_k_list[0]==0:#如果直线斜率列表长度为1 并且k=0 说明输入坐标都在y=y1上

print('所有点在直线y={}上'.format(int_list[1]))

elif len(set_k_list)==1 and set_k_list[0]!=0:#如果直线斜率列表长度为1 并且k不等于0

line_k=set_k_list[0]#说明在一条y=kx+b的直线上

line_b=int_list[1]-int_list[0]*line_k#b=y-kx

if float(line_b)<=0:#分为b>0和b<=0两种打印情况

print('所有点在直线y={}x{}上'.format(round(line_k,5),line_b))

else:

print('所有点在直线y={}x+{}上'.format(round(line_k,5),line_b))

elif len(set_k_list)!=1:#如果斜率列表长度不为1说明不在同一条直线上

print('所有点不在同一条直线上')

k_line_judge(int_list,wrong_list,judgement)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java大数据处理的流行框架

大数据挑战 在公司需要处理不断增长的数据量的各个领域中&#xff0c;对大数据的概念有不同的理解。 在大多数这些情况下&#xff0c;需要以某种方式设计所考虑的系统&#xff0c;以便能够处理该数据&#xff0c;而不会随着数据大小的增加而牺牲吞吐量。 从本质上讲&#xff0c…

工信部python证书多少钱_python requests SSL证书问题

错误信息如下&#xff1a;requests.exceptions.SSLError: ("bad handshake: Error([(SSL routines, tls_process_server_certificate, certificate verify failed)],)",)python做爬虫&#xff0c;对于有的网站&#xff0c;需要验证证书&#xff0c;比如&#xff1a;1…

mysql binlog线程恢复_使用MySQL SQL线程回放Binlog实现恢复

[toc]1. 需求部分1.1 基于MySQL复制同步特性&#xff0c;尝试使用Replication的SQL线程来回放binlog&#xff0c;可基于以下逻辑模拟场景做全量xtrabackup备份模拟日常备份执行sysbench压测4张表&#xff0c;20个线程&#xff0c;压测10分钟&#xff0c;模拟大量binlog删除实例…

带有Prometheus的Spring Boot和测微表第6部分:保护指标

以前&#xff0c;我们使用Prometheus成功启动了Spring Boot应用程序。 Spring应用程序中的一个端点正在公开我们的指标数据&#xff0c;以便Prometheus能够检索它们。 想到的主要问题是如何保护此信息。 Spring已经为我们提供了强大的安全框架 因此&#xff0c;将其轻松用于…

列举python中常用的数据类型_列举Python常用数据类型并尽量多的写出其中的方法...

#1 把字符串的第一个字符大写string.capitalize()#2 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串string.center(width)#3 返回 str 在 string 里面出现的次数&#xff0c;如果 beg 或者 end 指定则返回指定范围内 str 出现的次数string.count(str, beg0, endl…

mysql 二元分词_MySQL 中文分词原理

一&#xff0c;首先我们来了解一下其他几个知识点&#xff1a;1. Mysql的索引意义&#xff1f;索引是加快访问表内容的基本手段&#xff0c;尤其是在涉及多个表的关联查询里。当然&#xff0c;索引可以加快检索速度&#xff0c;但是它也同时降低了索引列的插入&#xff0c;删除…

python 元类 type_Python 使用元类type创建类对象常见应用详解

本文实例讲述了Python 使用元类type创建类对象。分享给大家供大家参考&#xff0c;具体如下&#xff1a;type("123") 可以查看变量的类型;同时 type("类名",(父类),{类属性:值,类属性2:值}) 可以创建一个类。在Python中不建议一个函数具有不同的功能(重载)…

使用AWS Elastic Beanstalk轻松进行Spring Boot部署

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户&#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 几乎所有应用程序都依赖于身份验证。 开发人员以及雇用他们的公司都想确认谁在发出请求&…

mysql报错乱码_连接mysql服务器报错时,出现乱码

页头用了header(content-type:text/html;charsetutf-8);try{$this->dbonew PDO($dsn,$dbuser,$dbpassword);}catch(Exception $e){echo $e->getMessage();}连接失败时会报错&#xff0c;但是乱码&#xff0c;IE下编码查看是UTF-8&#xff0c;但是是乱码&#xff0c;如果选…

自学python条件_自学Python2.8-条件(if、if...else)

自学Python2.8-条件(if、if...else)1.if 判断语句if语句是用来进行判断的&#xff0c;其使用格式如下&#xff1a;if 要判断的条件:条件成立时&#xff0c;要做的事情当“判断条件”成立(True)时&#xff0c;才执行语句&#xff1b;反之&#xff0c;则不执行。执行语句可以为多…

mac lion 安装 mysql_mac osx下安装mysql

操作系统版本&#xff1a;mac osx 10.11mysql版本&#xff1a;官网下载dmg v5.6.33 https://www.mysql.com/安装步骤1.双击dmg安装2.开启mysql服务系统偏好设置-底部-mysql-打开服务这个时候还不能使用mysql命令&#xff0c;需要配置mysql命令的路径。3.配置环境变量mysql的路…

python爬虫实训日志_Python学习学习日志——爬虫《第一篇》(BeautifulSoup)

爬虫简介(学习日志第一篇)一、爬虫介绍爬虫&#xff1a;一段自动抓取互联网信息的程序&#xff0c;从互联网上抓取对于我们有价值的信息。二、Pyyhon爬虫架构Python 爬虫架构主要由五个部分组成&#xff0c;分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有…

zookeeper 负载_ZooKeeper,策展人以及微服务负载平衡的工作方式

zookeeper 负载Zookeeper如何确保每个工人都能从工作委托经理那里愉快地完成工作。 Apache ZooKeeper是注册&#xff0c;管理和发现在不同计算机上运行的服务的工具。 当我们必须处理具有许多节点的分布式系统时&#xff0c;它是技术堆栈中必不可少的成员&#xff0c;这些节点…

mysql error handler_MySql错误处理(二) - Condition Handle

20.2.10.2. DECLARE处理程序DECLARE handler_type HANDLER FOR condition_value[,...] sp_statementhandler_type:CONTINUE| EXIT| UNDOcondition_value:SQLSTATE [VALUE] sqlstate_value| condition_name| SQLWARNING| NOT FOUND| SQLEXCEPTION| mysql_error_code这个语句指定…

方程组的直接解法和迭代法 python_数据与算法总结——基本数值算法2(线性方程组)...

4 基本数值算法4.2 线性方程组4.2.1 线性方程组的特性解的存在性和唯一性满足下面条件之一&#xff0c;A非奇异&#xff0c;可逆&#xff1a;如果b属于A的列向量张成的空间&#xff0c;则称方程组是相容的。范数需要满足次可加性&#xff08;三角不等式&#xff09;。对于n维矢…

高效的企业测试-集成测试(3/6)

本系列的这一部分将展示如何通过代码级以及系统级集成测试来验证我们的应用程序。 &#xff08;代码级&#xff09;集成测试 集成测试一词有时在不同的上下文中使用不同。 根据Wikipedia的定义&#xff0c;我指的是在代码级别上验证多个组件之间相互作用的测试。 通常&#x…

mysql level用法_MYSQL使用方法

1.查询一张表&#xff1a; select * from 表名&#xff1b;2.查询指定字段&#xff1a;select 字段1&#xff0c;字段2&#xff0c;字段3….from 表名&#xff1b;3.where条件查询&#xff1a;select 字段1&#xff0c;字段2&#xff0c;字段3 frome 表名 where 条件表达式…

python程序设计之文件_Python程序设计之文件操作(2)

print(sub_path)if os.path.isdir(sub_path):visitdir(sub_path)path1C:UsersQinHsiuPythonProjectsStringoovisitdir(path1)方法二&#xff1a;使用walk()函数来实现#方法二,通过walk()方法指定遍历目录def visidir2(path):if not os.path.isdir(path):print(error!,endn)retu…

带Prometheus的Spring Boot和测微表第4部分:基础项目

在以前的文章中&#xff0c;我们介绍了Spring Micrometer和InfluxDB。 所以你要问我为什么普罗米修斯。 原因是Prometheus在InfluxDB的拉模型与推模型上进行操作。 这意味着&#xff0c;如果将千分尺与InfluxDB一起使用&#xff0c;则在将结果推送到数据库中时肯定会有一些开…

前端如何实现网络速度测试功能_分析Web前端测试要点,从架构原理上进行分析,希望大家能够掌握...

基于Web前端分析过程&#xff0c;大概有十几个测试要点&#xff0c;我们今天主要来讲解结合前五个要点进行详细解说。前端测试点主要针对前端展开&#xff0c;什么叫前端分析呢&#xff1f;就是我们所有的分析和测试要点所站的视角都是针对客户端或者浏览器来对系统进行分析和测…