python123练习5: 函数和代码复用 (第5周)
实例7:七段数码管绘制
描述
这是"实例"题,与课上讲解实例相同,请作答检验学习效果。
七段数码管是一种展示数字的有效方式。
请用程序绘制当前系统时间对应的七段数码管,效果如下:
要求如下:
(1) 使用 time 库获得系统当前时间,格式如下:20190411
(2) 绘制对应的七段数码管
(3) 数码管风格不限
请在本机编写代码完成实例,建议有趣的风格请在Python123的绘图专区上传展示。
import turtle as t
import time
def drawGap(): #绘制数码管间隔t.penup()t.fd(5)
def drawLine(draw): #绘制单段数码管drawGap()t.pendown() if draw else t.penup()t.fd(40)drawGap()t.right(90)
def drawDigit(d): #根据数字绘制七段数码管drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)drawLine(True) if d in [0,2,6,8] else drawLine(False)t.left(90)drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False)t.left(180)t.penup()t.fd(20)
def drawDate(date):t.pencolor("red")for i in date:drawDigit(eval(i))
def main():t.setup(800, 350, 200, 200)t.penup()t.fd(-300)t.pensize(5)drawDate(time.strftime('%Y%m%d',time.gmtime()))t.done()
main()
基本思路:
步骤 1:绘制单个数字对应的码管步骤 2:获得当前系统时间,变成字符串,绘制对应的码管
思维方法:
-模块化思维:确定接口,封装功能-规则化思维:抽象过程为规则,计算机自动执行-化繁为简:将大功能变小组合,分而治之
——————————————————————————————————————————————
557073083385
实例8:科赫雪花小包裹
描述
这是"实例"题,与课上讲解实例相同,请作答检验学习效果。
科赫曲线,也叫雪花曲线。绘制科赫曲线。
请补充编程模板中代码,完成功能:获得用户输入的整数N,作为阶,绘制N阶科赫曲线。
import turtle
def koch(size, n):if n == 0:turtle.fd(size)else:for angle in [0, 60, -120, 60]:turtle.left(angle)koch(size/3, n-1)def main(level):turtle.setup(600,600)turtle.penup()turtle.goto(-200, 100)turtle.pendown()turtle.pensize(2)koch(400,level) turtle.right(120)koch(400,level)turtle.right(120)koch(400,level)turtle.hideturtle()try:level = eval(input("请输入科赫曲线的阶: "))main(level)
except:print("输入错误")
(1) 基本思路:
-递归思想:函数 +分支-递归链条:线段的组合-递归基例:初始线段
(2) 分形几何是一种迭代的图,广泛存在于自然界中,请尝试选择一个新曲线绘制:
-康托尔集、谢宾斯基三角形门格海绵 …
-龙形曲线 、空间填充科赫…
-函数递归的深入应用 …
————————————————————————————————————————
任意累积
描述
请根据编程模板补充代码,计算任意个输入数字的乘积。
注意,仅需要在标注…的地方补充一行或多行代码。
def cmul(a, *b):m = afor i in b:m *= ireturn mprint(eval("cmul({})".format(input())))
该程序需要注意两个内容:
无限制数量函数定义的方法,其中b在函数cmul中表达除了a之外的所有输入参数;
以字符串形式调用函数的方法,"cmul()"与eval()的组合,提供了很多灵活性
——————————————————————————————————————————
斐波那契数列计算
描述
根据编程模板补充代码,计算斐波那契数列的值,具体功能如下:
获取用户输入整数N,其中,N为正整数
计算斐波那契数列的值
如果将斐波那契数列表示为fbi(N),对于整数N,值如下:
fbi(1)和fbi(2)的值是1,当N>2时,fbi(N) = fbi(N-1) + fbi(N-2)
请采用递归方式编写。
def fbi(n):if n == 1 or n == 2:return 1 else:return fbi(n-1) + fbi(n-2)n = eval(input())
print(fbi(n))
——————————————————————————————————————————
汉诺塔实践
描述
汉诺塔问题大家都清楚,这里不再赘述。
请补充编程模板中代码,完成如下功能:
有三个圆柱A、B、C,初始时A上有N个圆盘,N由用户输入给出,最终移动到圆柱C上。
每次移动步骤的表达方式示例如下:[STEP 10] A->C。其中,STEP是步骤序号,宽度为4个字符,右对齐。
请编写代码,获得输入N后,输出汉诺塔移动的步骤。
steps = 0
def hanoi(src, des, mid, n):global stepsif n == 1:steps += 1print("[STEP{:>4}] {}->{}".format(steps, src, des))else:hanoi(src, mid, des, n-1)steps += 1print("[STEP{:>4}] {}->{}".format(steps, src, des)) hanoi(mid, des, src, n-1)
N = eval(input())
hanoi("A", "C", "B", N)
汉诺塔实例十分经典,学习每门语言都要写一遍。
这个例子要注意:全局变量的使用以及递归的用法。递归用法注意:函数定义+分支表示。
————————————————————————————————————————
欢迎关注我的公众号【panda一块砖】,更新更多编程相关文章与资源。
python123练习5: 函数和代码复用 (第5周)相关推荐
- 测验5: 函数和代码复用 (第5周)
测验5: 函数和代码复用 (第5周) 文章目录 测验5: 函数和代码复用 (第5周) 单选题 程序题 这是python123官网上联合MOOC的Python程序设计(第10期)答案 单选题 第三题补充 ...
- python测验5 函数和代码_测验5: 函数和代码复用 (第5周)-单选题
1.以下选项不是函数作用的是: A. 提 ...
- python函数的作用降低编程复杂度_测验5: 函数和代码复用 (第5周)
一.选择题 1.以下选项不是函数作用的是: A 提高代码执行速度 B 复用代码 C 增强代码可读性 D 降低编程复杂度正确答案: 函数不能直接提高代码执行速度. 2.下列程序的输出结果为: def f ...
- python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用
本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...
- python中组合数据类型、函数和代码复用的难点_Python电子教案5-2 函数和代码复用...
<Python电子教案5-2 函数和代码复用>由会员分享,可在线阅读,更多相关<Python电子教案5-2 函数和代码复用(56页珍藏版)>请在人人文库网上搜索. 1.七段数码 ...
- 第 5 章 函数和代码复用
整理的文章内容主要来源为高教版<计算机等级考试二级 Python>教程视频讲义,并且更正了原讲义中的错误的地方. 专栏文章索引如下: 考试大纲 第 1 章 程序设计基本方法 第 2 章 P ...
- Python基础(三)_函数和代码复用
三:函数和代码复用 (一)函数的基本使用 1.函数的定义 函数是一段具有特定功能的.可重用的语句组,用函数名来表示并通过函数名进行功能调用.函数也可以看作是一段具有名字的子程序,可以在需要的地方调用执 ...
- 第五章 函数和代码复用
第五章 函数和代码复用 5.1 函数的基本使用 5.1.1 函数的定义 定义:函数是一段具有特定功能的.可重用的语句组,用函数名来表示并通过函数名进行功能调用. 使用函数的目的:降低编程难度和代码重用 ...
- 函数和代码复用之实例解析:软文的诗词风
@TOC函数和代码复用之实例解析:软文的诗词风 人生苦短,我学Python 朋友圈已经是现代人生活中的一种社交形态,朋友圈里面的各种软文也体现了语言风格的变化.为了便于手机阅读,很多软文常常会使用一种 ...
最新文章
- LAMP编译安装之———httpd
- ASIHTTPRequest详解
- 吉大计算机学院周柚,周柚
- mysql文件后缀名是什么_数据库文件的扩展名是什么?
- 亲测有效,使用postman进行并发测试
- python怎么下载网易云歌曲_python 下载网易云歌曲(能在线听都可以)
- ArcGIS拓扑小技巧:两个面矢量合并但不叠加
- OpenCv中Threshold函数详解
- Discuz仿今日头条模板/Discuz新闻资讯商业版GBK模板
- static、static inline、entern inline
- Excel 数组公式的简单使用
- logo设计-中文设计
- vue实现微信web开发之扫码签到
- 计算机三个人的英语情景对话,求简单的三人英语情景对话对话 购物的老师要求要三人的英语对话 购物的 每人五句左右就行...
- 【转】2018年EI收录中文期刊目录
- 医疗器械软件注册申报-核心算法
- KDE-Graphics(KDE图形图像软件)先容
- C程序设计(谭浩强)--学习笔记
- 一心多用多线程-线程创建的三种方式
- python随机生成生日测试生日悖论