截止日期:

要求:

  • 下周实验课前上交,做好后在实验课上检查可获取平时分。
  • 做出进阶或选做的的请用清晰的标致标识出来,方便老师批改
  • 本次作业:可提交也可不提交。作业算平时成绩。
  • 本次作业内容量较大,请组队合作完成(每个队2-3人)

实验目标

  • 函数的定义与使用
  • 循环,for, range
  • 结合使用函数、循环与turtle绘制图形

实验内容

任务1.IPO及函数

  1. TempStr = input("请输入带有符号的温度值: ")
  2. if TempStr[-1] in ['F','f']:
  3. C = (eval(TempStr[0:-1]) - 32)/1.8
  4. print("转换后的温度是{:.2f}C".format(C))
  5. elif TempStr[-1] in ['C','c']:
  6. F = 1.8*eval(TempStr[0:-1]) + 32
  7. print("转换后的温度是{:.2f}F".format(F))
  8. else:
  9. print("输入格式错误")

上面程序中,if..elif..else程序块负责处理传入的带温度标志的字符串并打印相应的提示信息,尝试定义一个函数TempConvert(ValueStr)取代上面的if..elif..else程序块。以后只需要调用TempConvert(ValueStr)函数,就可执行这段处理代码:

  1. def TempConvert(valueStr):
  2. #下面放置你的代码
  3. if 输入的的温度是华氏:
  4. #转换代码
  5. return "转换后的温度是{:.2f}C".format(C)
  6. #elif 输入的温度是摄氏度:
  7. #转换代码
  8. return "转换后的温度是{:.2f}F".format(F)
  9. else:
  10. return "输入格式错误"
  11. #调用刚才定义的函数#调用刚才定义的函数
  12. x = input("请输入带有符号的温度值: ")
  13. TempConvert(x) #并没有输出,为什么?

任务2.range的使用

range代表范围,可以产生一系列的整数。请看如下参考代码:

  1. for i in range(10):
  2. print(i) #从几开始输出到几?
  3. for i in range(1,10):
  4. print(i) #从几开始输出到几?
  5. for i in range(1,10,2):
  6. print(i) #从几开始输出到几?2是什么意思
  7. for i in range(10,1, -1):
  8. print(i) #从几开始输出到几?-1是什么意思

尝试完成如下题目:使用for e in range循环求得1到n之间所有奇数的和?

提示:加入变量temp暂存运行结果。

怎样求得从1开始到n之间所有偶数的和?

作业1:

1.1 手写或打印代码,然后为每行加注释。

1.2 尝试使用for e in range循环,输入n个人的成绩,最后输出n个人成绩的平均值。

3.绘制等边三角形。可指定参数(海龟初始角度、边长、画笔颜色),并用IPO分析该函数。

turtle可以用来绘图,常见的turtle用法如下:

  1. import turtle #导入turtle,仅需导入1次
  2. turtle.pensize(5)
  3. turtle.fd(40) #前进40
  4. turtle.left(120) #转向120度
  5. turtle.fd(40)
  6. turtle.penup() #笔抬起
  7. turtle.fd(100)
  8. turtle.pendown() #笔放下
  9. turtle.fd(20)

3.1 绘制一个等边三角形。注意:不要在循环里import turtle

3.2 定义一个绘制等边三角形的函数。输入参数:边长。

3.3 改造2的函数。输入参数:边长、海龟初始方向、画笔颜色。

3.4 从控制台动态输入三角形的边长进行绘制。注意:可使用eval()或float()函数。

4.绘制圆形

4.1 绘制一个圆。

4.2 定义函数绘制一个圆。输入参数:半径,海龟初始方向

4.3 使用循环调用上面2定义的函数绘制9个圆,会碰到什么问题?如何在此基础上进行修改。实现本题要求。

作业2. 阅读代码

打印或手写改题代码,并总结自己是如何实现绘制同心圆?碰到什么问题?怎么解决?

5.特别考核:改造上次实验的圆形生成器程序。可以根据自由输入的n个r值,绘制n个圆。

6. 绘制出该六角形。



特别考核:使用画两个三角形的方式(调用前面的绘制三角形的函数),绘制出该六角形。

7. 绘制如下图所示的正方形螺旋线



7.1 不用循环进行绘制。

7.2 考核:使用循环进行绘制。

实验与作业(Python)-03 Python程序实例解析(函数、循环、range、turtle)的更多相关文章

  1. 实验与作业(Python)-03 Python程序实例解析

    截止日期: 要求: 下周实验课前上交,做好后在实验课上检查可获取平时分. 做出进阶或选做的的请用清晰的标致标识出来,方便老师批改 本次作业:可提交也可不提交.作业算平时成绩. 本次作业内容量较大,请组 ...

  2. Python语言程序设计基础(2)—— Python程序实例解析

    温度转换 def tempConvert(ValueStr): if ValueStr[-1] in ['F','f']: ans = (eval(ValueStr[0:-1]) - 32)/1.8 ...

  3. python 购物车小程序(列表、循环、条件语句)

    goods = [ ['iphone6s', 5800], ['mac book', 9000], ['coffee', 32], ['python book', 80], ['bicyle', 15 ...

  4. python --- 03 整型 bool 字符串 for循环

    一.整型(int) 基本操作: 1.+ - * / % // ** 2.  .bit_length() 计算整数在内存中占⽤的⼆进制码的⻓度 如: 二.布尔值(bool) True  False 1. ...

  5. Python 中Lambda 表达式 实例解析

    Lambda 表达式 lambda表达式是一种简洁格式的函数.该表达式不是正常的函数结构,而是属于表达式的类型.而且它可以调用其它函数. 1.基本格式: lambda 参数,参数...:函数功能代码 ...

  6. ogre3D程序实例解析1-平移旋转与缩放

    接着上篇写 http://www.cnblogs.com/songliquan/p/3294902.html 旋转 这里有必要看一下关于旋转的源代码:    virtual void pitch(co ...

  7. 人生苦短,我用python,为什么选择python,python简介

    认识 Python 人生苦短,我用 Python —— Life is short, you need Python  目标 Python 的起源 为什么要用 Python? Python 的特点 ...

  8. 如何让Windows程序只运行一个程序实例?

    要实现VC++或者MFC只运行一个程序实例,一般采用互斥量来实现,即首先用互斥量封装一个只运行一个程序实例的函数接口: HANDLE hMutex = NULL; void MainDlg::RunS ...

  9. [ Python ] Flask 基于 Web开发 大型程序的结构实例解析

    作为一个编程入门新手,Flask是我接触到的第一个Web框架.想要深入学习,就从<FlaskWeb开发:基于Python的Web应用开发实战>这本书入手,本书由于是翻译过来的中文版,理解起 ...

随机推荐

  1. python关于try except的使用方法

    一.常见错误总结 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入 ...

  2. 解决java依赖poi导出Excel表时,没有出现下载提示的问题

    转自:https://blog.csdn.net/jinchunzhao123/article/details/88626077 浏览器响应: 而且进入断点调试,所有的数据都执行了就是没有下载提示.而 ...

  3. Node: 包管理机制

    Node.js 的模块机制可以很好地解决业务代码混乱的难题,但对于第三方模块包,就有些力不从心了,因为第三方模块包分散存放在各地,无法集中式管理.这就需要一个包管理机制,在 Node.js 中,Isa ...

  4. MySQL Replication--复制延迟03--Seconds_Behind_Master计算

    Seconds_Behind_Master计算原理 当从库上复制IO进程和复制SQL进程正常运行,且SQL线程处于执行状态而非等待IO进程同步BINLOG时,复制延迟时间计算如下: 复制延迟时间(Se ...

  5. Bootstrap框架简介

    Bootstrap是Twitter公司(www. twitter.com)开发的一个基于HTML , CSS , JavaScript的技术框架,符合HTML和 CSS规范,且代码简洁.视觉优美.该框 ...

  6. 1、Python简介与Python安装

    一.Python简介: Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的创始人为吉多·范罗苏姆(Guido van Rossum)少数几个不秃头的语言创始 ...

  7. Docker部署nodejs应用并使用PM2作为守护进程

    环境:centos7.6 Docker version 18.06.0-ce mkdir /data cd /data 拉取最新keymetrics/pm2:latest-alpine镜像 docke ...

  8. 用junit Test Suite来组合测试

    在测试过程中,有时可能想一次性运行所有的测试类,或是选择性的运行某些测试类.这样的话我们就可以用TestSuite来统一管理我们的测试类. 比如说我现在有三个测试类:junitTest4,TestCa ...

  9. 4个MySQL优化工具AWR,帮你准确定位数据库瓶颈!(转载)

    对于正在运行的mysql,性能如何,参数设置的是否合理,账号设置的是否存在安全隐患,你是否了然于胸呢? 俗话说工欲善其事,必先利其器,定期对你的MYSQL数据库进行一个体检,是保证数据库安全运行的重要 ...

  10. Windows是如何将64位Ntdll映射到32位进程的---转自简书

    今天我们探索一个问题: 64位的ntdll是如何被加载到WoW64下的32位进程?今天的旅程将会带领我们进入到Windows内核逻辑中的未知领域,我们将会发现32位进程的内存地址空间是如何被初始化的. ...