安徽工程大学

Python程序设计 实验报告

班级  物流191   姓名姚彩琴学号3190505129 成绩

日期     2020.5.3     指导老师修宇

【实验目的】

掌握函数的定义与使用方法;掌握函数的参数传递和变量的作用域;掌握函数的嵌套调用和递归调用的方法;

【实验条件】

PC机或者远程编程环境

【实验内容】

1、完成三个编程题。

题目一 、计算三维空间某点距离原点的欧式距离

题目描述:

欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义。三维空间里点a和b的坐标如果分别为a(x1,y1,z1)、b(x2,y2,z2),则ab的距离的计算机公式是dist(a,b) = √( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 )‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬提示:使用math.sqrt()函数求平方根

要求:将虚线下的代码复制到答题区域、补充完善后再提交。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

-------------------------------------------------------------------------------------------------------------------------‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

#请在这里定义distance函数,计算点(x,y,z)与原点的距离值并返回‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬x,y,z=input().split(",")‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

d=distance(float(x),float(y),float(z))#调用distance函数‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

print("{:.2f}".format(d))#输出距离值,保留三维小数‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

#代码区结束‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

输入格式:

输入是一个点a的三维坐标,以逗号分割,形如:x,y,z ,其中x,y,z都是非负实数。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

例如:1.2,1.3,1.4‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

输出格式:

输出点a与原点的距离(保留小数点后两位)‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬,        例如:2.08‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

输入输出示例:

输入             输出

示例 1 1.0,1.0,1.0 1.73

拓展:

在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。使用这个距离,欧氏空间成为度量空间。相关联的范数称为欧几里得范数。较早的文献称之为毕达哥拉斯度量。在实践中这个函数在数据分析及挖掘中经常会被使用做相似度的计算。

题目2、汉诺塔的求解(可选,自行在本地电脑实现)

描述

汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

知乎上有关 汉诺塔的讨论 :

https://www.zhihu.com/question/24385418

百度百科:https://baike.baidu.com/item/%E6%B1%89%E8%AF%BA%E5%A1%94/3468295?fr=aladdin

本题要求:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

1. 使用函数递归的方法实现一个汉诺塔的求解程序;‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

2. 汉诺塔的层数为:3‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

3. 要求将所有的圆盘从最右边的A号柱子全部移动到最左边的C号柱子,且每次只能移动一个圆盘。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

4. 输出总共移动了多少次。

三根柱子从左至右依次为A、B、C,

六颗串珠从小到大依次为1到3

题目3、判断闰年

闰年是公历中的名词。闰年分为普通闰年和世纪闰年。普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年。(如2004年就是闰年);世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年);

闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)

关于闰年 : https://baike.baidu.com/item/%E9%97%B0%E5%B9%B4/27098?fr=aladdin

抽象:闰年的判断

1、能被4整除,但不能被100整除;

2、能被400整除;

提示

1)怎么实现“能被4整除,但不能被100整除”判断?

对year 求余数,看看余数是否为0;参考:year%4==0 and year%100!=0

2)怎么实现“能被400整除”判断?

还是对year求余数   year%400==0:

3)把二个条件同时考虑

(year%4==0 and year%100!=0)  or year%400==0

描述

编写函数leap,根据“四年闰百年不闰,四百年又闰”判断是否闰年。在主程序输入一个年份,调用leap函数判断其是否为闰年,并输出判断结果。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

注意:复制下面代码,填写补充完整,实际参数和形式参数部分也要修改。

输入格式‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

输入一个代表年份的整数‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

输出格式

输出年份是否闰年的判断结果,请见输入输出示例说明

【实验记录与分析】

(1)计算三维空间某点距离原点的欧式距离

输入代码:

输入1,1,1后的运行结果:

我出现过运行错误的情况:

①将^代替**:

②出现distance函数未被定义的情况:

(2)汉诺塔的求解

输入代码:

输入3后的运行结果:

输入10后的运行结果:

注意:在不了解“汉诺塔”的情况下,要查资料来获取相关信息,然后将整个过程有逻辑的过一遍,从而才能开始实验。要先把问题分为多个子问题,再来解决每个子问题。若输入较大数据进行运行时,建议使用VS code,效率会比idle高很多。

(3)判断闰年(代码的输入不唯一)

输入代码:

输入2000后的运行结果:

我出现过的错误:

①逻辑错误

然而1900并不是闰年,正确结果应为:

②返回值不能是有带""的True和False

③最后判断语句中的a未被定义,应该为已被定义的y

注:因为代码输入是按逻辑来的,所以较容易出现的是逻辑错误。

所以当代码为:

此时可以避免出现逻辑错误。

标签:函数,闰年,Python,31,距离,汉诺塔,程序设计,输入

来源: https://www.cnblogs.com/Jiqiuwn/p/12823657.html

python大学课程实验六_Python程序设计实验六:函数相关推荐

  1. python函数实验总结_Python程序设计实验报告:实验六 函数

    安徽工程大学 Python程序设计 实验报告六 班级 物流192 姓名陶俊学号3190505235 成绩 日期 2020.5.4 指导老师修宇 实验 6 函数 [实验目的] 掌握函数的定义与使用方法: ...

  2. python综合实验报告_Python程序设计实验报告五:综合运用三种基本结构进行程序设计(综合性实验)...

    安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名姚彩琴学号3190505129 成绩 日期 2020.4.22 指导老师修宇 [实验名称]综合运用三种基本结构进行程序设计(综合性实 ...

  3. python程序设计实验七_Python程序设计实验报告七:组合数据类型

    安徽工程大学 Python程序设计实验报告 班级物流192姓名芦靓学号3190505217成绩 日期2020.5.27指导老师修宇 [实验名称]实验七 组合数据类型 [实验目的] 熟悉通过序列索引迭代 ...

  4. python实验大纲_Python程序设计实验-教学大纲-段震

    Python程序设计实验-教学大纲-段震 Python程序设计实验教学大纲课程名称中文Python程序设计实验课程名称英文Experiments of Programming in Python 课程 ...

  5. python综合实验报告_Python程序设计 实验报告

    安徽工程大学 Python程序设计 实验报告 班级:物流192       姓名:刘马汉卿学号:319005211 成绩:            日期:2020年4月29日        指导老师:修 ...

  6. python实验目的_Python程序设计实验报告

    安徽工程大学 Python程序设计实验报告 班级 物流192姓名 许雷雷学号 3190505215成绩 ___________ 日期 2019.3.4指导教师 ____修宇_______ 实验名称实验 ...

  7. python编程设计圆柱体积_PYTHON程序设计实验2

    安徽工程大学 Python程序设计 实验报告 班级  物流191   姓名邹缕学号3190505117 成绩 日期     2020.3.22      指导老师修宇 实验二 顺序结构程序设计(验证性 ...

  8. python实验目的_Python程序设计实验_教学大纲_段震

    < Python 程序设计实验>教学大纲 课程名称 ( 中文 ) : Python 程序设计实验 课程名称 ( 英文 ) : Experiments of Programming in P ...

  9. python程序控制结构与分支的实验报告_Python程序设计实验报告三:分支结构程序设计...

    实验三   分支结构程序设计 班级:物流191             姓名:倪绍磊              学号:3190505131 指导老师:修宇           日期:2020.4.3 ...

最新文章

  1. Socket程序从windows移植到linux下需要注意的
  2. R语言对数正态分布分布函数Log Normal Distribution(dlnorm, plnorm, qlnorm rlnorm)实战
  3. python有道翻译-利用python写一个有道翻译的脚本
  4. 【Android工具】安卓手机轻松获取硬件数据和状态信息
  5. probuffer java_Protocol Buffer的使用
  6. 安装redis并开启_如何安装Redis,以及对Redis配置文件的更改和测试
  7. java jframe 设置背景图片_JAVA怎样设置JFrame的背景图片呢?谁能教教我怎么弄背景图片...
  8. readonly于disable的区别 及 name和id的区别
  9. 多线程的那点儿事(之顺序锁)
  10. 奇迹mu服务器最新,【奇迹MU网单服务端】2020新版S6EP3带终极爆炫版带七彩宝石傻瓜式一键安装客户端带GM管理工具...
  11. Red Giant红巨人特效插件助力制作影视大片特效
  12. form表单提交到controller时出现404的尴尬问题(或链接不到.action、链接不到.do跳404的问题)
  13. 为革命保护视力 --- 给 Visual Studio 换颜色
  14. 阿里巴巴全球化测试技术介绍
  15. java 输入一个时间,获取当前周的周一以及周五时间【自然周】
  16. 伸展树算法c语言,数据结构之伸展树详解
  17. IE11不兼容css3渐变属性
  18. 美团已开始研发大模型 ;华为MetaERP全球上线;金山软件一季度净利润同比增长96%丨每日大事件...
  19. 数据库读写分离与分库分表
  20. 从大厂离职后,AI 大神们选择加入 AI 初创公司

热门文章

  1. 如何用SPSS计算个人BMI值?
  2. 大学生社交网络问卷调查,社交情况问卷调查报告
  3. 阿里云块存储团队卓越工程实践
  4. java catch 空指针异常_java空指针异常怎么处理
  5. 通过快递鸟如何接入圆通速递电子面单
  6. web安全之文件上传漏洞总结
  7. L1-030——一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。
  8. 通过爬虫爬取四川省公共资源交易平台上最近的招标信息 --- URLConnection
  9. 完美高仿精仿京东商城手机客户端android版源码
  10. 移动软件开发-制作视频播放器