截止日期:

要求:

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

实验目标

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

实验内容

任务1.IPO及函数

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

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

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

任务2.range的使用

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

for i in range(10):
print(i) #从几开始输出到几?
for i in range(1,10):
print(i) #从几开始输出到几?
for i in range(1,10,2):
print(i) #从几开始输出到几?2是什么意思
for i in range(10,1, -1):
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用法如下:

import turtle  #导入turtle,仅需导入1次
turtle.pensize(5)
turtle.fd(40) #前进40
turtle.left(120) #转向120度
turtle.fd(40)
turtle.penup() #笔抬起
turtle.fd(100)
turtle.pendown() #笔放下
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程序实例解析的更多相关文章

  1. 实验与作业(Python)-03 Python程序实例解析(函数、循环、range、turtle)

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

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

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

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

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

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

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

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

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

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

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

  7. Python学习笔记四:列表,购物车程序实例

    列表 切片 中括号,逗号分隔,可以一次取出多个元素,起始位置包括,结束位置不包括(顾头不顾尾) 如果取最后一个,而且不知道列表长度,可以使用负数(-1是最后一个,以此类推) 如果取最后几个,记住从左往 ...

  8. 用python 实现录入学生作业情况的小程序

    写一个录入学生作业情况的一个程序 1.查看学生作业情况 2.录入学生作业情况 3.可以让输入3次,需要为空的情况 homeworks = { ‘张流量’: {‘2018.3.22’:”未交”,’201 ...

  9. Python实验报告——第2章 Python语言基础

    实验报告 [实验目的] 1.熟悉在线编程平台. 2.掌握基本的 python 程序编写.编译与运行程序的方法. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第二章实例01-07,实 ...

随机推荐

  1. python自带的web服务器

    python自带的web服务器 python自带的包可以建立简单的web服务器 BaseHTTPServer 提供基本的web服务和处理类 SimpleHTTPServer 包含执行get请求的Sim ...

  2. OptionMenu选项菜单

    #选项菜单 from tkinter import * root = Tk() variable=StringVar() variable.set('one') w = OptionMenu(root ...

  3. JavaScript的屏幕对象

    screen 屏幕对象 反映了当前用户的屏幕设置. width 返回屏幕的宽度(像素数). height 返回屏幕的高度. availWidth 返回屏幕的可用宽度(除去了一些不自动隐藏的类似任务栏的 ...

  4. java之设计模式工厂三兄弟之抽象工厂模式

    [学习难度:★★★★☆,使用频率:★★★★★]  工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工 ...

  5. java中包的定义

    对包中的java程序进行编译(cmd) 编译:javac -d . Test.java 执行:java com.java.demo.Test package com.java public class ...

  6. [LeetCode] Redundant Connection II 冗余的连接之二

    In this problem, a rooted tree is a directed graph such that, there is exactly one node (the root) f ...

  7. [LeetCode] Teemo Attacking 提莫攻击

    In LLP world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned ...

  8. echarts.js--前端可视化数据图形

    ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上, 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等 ...

  9. Python基础Day01

    Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  10. Multipath在OpenStack中的faulty device的成因及解决(part 2)

    | 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.如有问题,可以邮件:wangxu198709@gmail.com 简介 在上次的文章M ...