Python菜鸟------七段数码管绘制
import turtle as t
import time
def seperate(): # 这一段函数是给数码管中每一笔画间距t.fd(6)
def penupordown(de): # 定制每一笔画 函数if de:t.pendown()t.fd(34)t.penup()seperate()t.right(90)seperate()
def draw(digit): '''读入数字,判断该数字在某一笔画中是否需要作画,需要则落笔不需要则提笔'''penupordown(True) if digit in [2,3,4,5,6,8,9] else penupordown(False)penupordown(True) if digit in [0,3,4,5,6,7,8,9] else penupordown(False)penupordown(True) if digit in [0,2,3,5,6,8,9] else penupordown(False)penupordown(True) if digit in [0,1,2,6,8] else penupordown(False)t.fd(-6) # 在第四和第五画笔之间我们需要重新调整画笔走向t.left(90)seperate()penupordown(True) if digit in [0,1,4,5,6,8,9] else penupordown(False)penupordown(True) if digit in [0,2,3,5,6,7,8,9] else penupordown(False)penupordown(True) if digit in [0,2,3,4,7,8,9] else penupordown(False)t.seth(0) # 单个数码管绘制完成之后调整海龟前进方向
def inputdata(data): # 读入数据,利用for ..in 循环读入数据for i in data:pencolor(eval(i))draw(eval(i))t.fd(32) # 绘制完单个数码管之后,海龟进入下一个数码管的第一个画笔
def pencolor(n): # 画笔颜色控制函数colorlist = ["tomato",'pink','cyan','black','magenta','brown','green',\'blue','yellow','purple']t.pencolor(colorlist[n])
def main(): #定义主函数t.setup(900,400)t.up()t.speed(5)t.goto(-300,25)t.pensize(5)Data = list(input('请输入数字:\n'))inputdata(Data)t.hideturtle() # 最后把海龟藏起
def examinate(): try:main()except:print("输入错误,请重新输入!")return examinate()
examinate()
拓展:
绘制数码管,当然需要学习怎么绘制当前时间的数码管。
以下效果图:
# 首先我们需要引入 time库from time import localtime,strftime
这个时候我们需要修改 ‘数据输入’ 代码:
Data = list(input('请输入数字:\n'))
# 修改之后
Data = list(strftime("%Y!%m@%d#%H$%M^%S&",localtime())) #注意{!@#$^&}符号,下面做解释
相关内容参考 time库–时间格式化:
https://blog.csdn.net/qq_49107802/article/details/108979210
我们知道修改之后列表Data并非纯数字了,这样与函数 inputdata()相违背。我们需要作出新的修改
def inputdata(data): # 读入数据,利用for ..in 循环读入数据for i in data:pencolor(eval(i))draw(eval(i))t.fd(32) # 绘制完单个数码管之后,海龟进入下一个数码管的第一个画笔修改之后:''' 解释{!@#$^&}:特殊符号引入文字 ‘年月日时分秒’为什么不直接使用‘年月日时分秒’呢?因为"%Y年%m月%d日%H时%M分%S秒" 并不会使文字显现在屏幕上t.write('年',font=('Arial',25,'normal')等才能write文字。 '''def inputdata(data): # 读入数据,利用for ..in 循环读入数据for i in data: if i == '!': # font 是用来定义字体的大小和形状的,至于'Arial'感兴趣的同学可以自己查一下t.write('年',font=('Arial',22,'normal'))elif i == '@':t.write('月',font=('Arial',22,'normal'))elif i == '#':t.write('日',font=('Arial',22,'normal'))elif i == '$':t.write('时',font=('Arial',22,'normal'))elif i == '^':t.write('分',font=('Arial',22,'normal'))elif i == '&':t.write('秒',font=('Arial',22,'normal'))else:pencolor(eval(i))draw(eval(i))t.fd(35) # 绘制完单个数码管之后,海龟进入下一个数码管的第一个画笔
最后 删去 examinate()函数
修改之后的全部代码:
import turtle as t
from time import localtime,strftime
def seperate(): # 这一段函数是给数码管中每一笔画间距t.fd(6)
def penupordown(de): # 定制每一笔画 函数if de:t.pendown()t.fd(34)t.penup()seperate()t.right(90)seperate()
def draw(digit):penupordown(True) if digit in [2,3,4,5,6,8,9] else penupordown(False)penupordown(True) if digit in [0,3,4,5,6,7,8,9] else penupordown(False)penupordown(True) if digit in [0,2,3,5,6,8,9] else penupordown(False)penupordown(True) if digit in [0,1,2,6,8] else penupordown(False)t.fd(-6) # 在第四和第五画笔之间我们需要重新调整画笔走向t.left(90)seperate()penupordown(True) if digit in [0,1,4,5,6,8,9] else penupordown(False)penupordown(True) if digit in [0,2,3,5,6,7,8,9] else penupordown(False)penupordown(True) if digit in [0,2,3,4,7,8,9] else penupordown(False)t.seth(0) # 单个数码管绘制完成之后调整海龟前进方向
def inputdata(data): # 读入数据,利用for ..in 循环读入数据for i in data: if i == '!': # font 是用来定义字体的大小和形状的,至于'Arial'感兴趣的同学可以自己查一下t.write('年',font=('Arial',22,'normal'))elif i == '@':t.write('月',font=('Arial',22,'normal'))elif i == '#':t.write('日',font=('Arial',22,'normal'))elif i == '$':t.write('时',font=('Arial',22,'normal'))elif i == '^':t.write('分',font=('Arial',22,'normal'))elif i == '&':t.write('秒',font=('Arial',22,'normal'))else:pencolor(eval(i))draw(eval(i))t.fd(35) # 绘制完单个数码管之后,海龟进入下一个数码管的第一个画笔
def pencolor(n): # 画笔颜色控制函数colorlist = ["tomato",'pink','cyan','black','magenta','brown','green',\'blue','yellow','purple']t.pencolor(colorlist[n])
def main(): #定义主函数t.setup(1350,400)t.up()t.speed(20)t.goto(-600,25)t.pensize(5)Data = list(strftime("%Y!%m@%d#%H$%M^%S&",localtime()))inputdata(Data)t.hideturtle() # 最后把海龟藏起
main()
Python菜鸟------七段数码管绘制相关推荐
- python:七段数码管绘制数字详解
python:七段数码管绘制数字详解 七段数码管由七段数码管拼接而成,每段有亮或不亮两种情况.这里,先给出程序的全部代码,如下所示. 定义了drawDigit()函数,该函数根据输入的数字绘制七段数码 ...
- Python练习:七段数码管绘制
今天在慕课网上继续学习北京理工大学老师讲的Python语言程序设计,看到这个例子感觉很有趣.所以想了想还是写上来. 七段数码管绘制: 所用的知识:turtle库和time库的使用.函数的定义及使用 代 ...
- Python实现 七段数码管绘制(嵩天老师)
示例7:七段数码管绘制 基本思路 -步骤1:绘制单个数字对应的数码管 -步骤2:获得一串数字,绘制对应的数码管 -步骤3:获得当前系统时间,绘制对应的数码管 代码段1: import turtle ...
- 【Python】七段数码管绘制日期年月日
七段数码管是一种展示数字的有效方式. 请用程序绘制当前系统时间对应的七段数码管,效果如下: ...
- 【Python】七段数码管绘制问题
问题分析: 绘制路径: 代码: import turtle #引入绘图库turtle def drawLine(draw): #绘制单段数码管turtle.pendown() if draw else ...
- python彩色七段数码管绘制
#七段数码管的绘制.py from turtle import * from random import * import time # 绘制单段间隔 def drawGap():penup()fd( ...
- #Python语言程序设计Demo - 七段数码管绘制
Python设计七段数码管绘制 单个数码管效果: 设计总数码管效果: Pyhton 编程: #七段数码管绘制 import turtle as t import time as T def drawG ...
- python七段数码管绘制单个数字_使用Python的turtle库实现七段数码管绘制
七段数码管绘制: 七段数码管是由7段数码管拼接而成,每段有亮或不亮两种情况,改进的七段数码管还包括一个小数点位置. 七段数码管能形成2^7=128种状态,其中部分状态能够显示易于人们理解的数字或字母含 ...
- python七段数码管绘制英文字母_Python实例之七段数码管绘制理解
Python 实例之七段数码管绘制理解 八段线的编号如上图所示.基本逻辑为画笔从 1 走到 7 ,每一步画笔落下代表画或者是 画笔抬起代表不画,最终形成 1-9 的数字排列.以下理解均为个人学习理解. ...
最新文章
- 利用python爬取IP地址归属地等信息!
- bootstrap Table API和一些简单使用方法
- 医院电脑瘫痪 病人排长队苦等5小时
- 貌似长沙有个用膳吧外卖网
- Vue笔记(六)——Vue组件通信Vuex
- POJ 1014 Dividing 背包
- 环球影城门票开售,开园日门票1分钟内售罄
- View Controller Programming Guide for iOS---(三)---Using View Controllers in Your App
- 如何在java对象里访问Spring中已加载的property内容
- linux gt240驱动下载,支持GT540M NVIDIA新款Linux显卡驱动
- MT7628学习笔记(13)——ipk软件包编写与应用
- Python爬虫获取PPT模板
- Robotium-基础理论介绍
- 【见闻录系列】浅谈搜索系统与推荐系统的一点区别
- 程序员是不是青春饭?年纪大了何去何从
- Beta版本——第五次冲刺博客
- 事件回放:因「鹿晗、关晓彤」公布恋情,微博瘫痪了……
- 关于机器学习,我总结了可能是目前最全面最无痛的入门路径和资源!
- Linux paste合并文件,使用多个字符作为间隔符
- ext3格式化成ext4