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菜鸟------七段数码管绘制相关推荐

  1. python:七段数码管绘制数字详解

    python:七段数码管绘制数字详解 七段数码管由七段数码管拼接而成,每段有亮或不亮两种情况.这里,先给出程序的全部代码,如下所示. 定义了drawDigit()函数,该函数根据输入的数字绘制七段数码 ...

  2. Python练习:七段数码管绘制

    今天在慕课网上继续学习北京理工大学老师讲的Python语言程序设计,看到这个例子感觉很有趣.所以想了想还是写上来. 七段数码管绘制: 所用的知识:turtle库和time库的使用.函数的定义及使用 代 ...

  3. Python实现 七段数码管绘制(嵩天老师)

    示例7:七段数码管绘制 基本思路 -步骤1:绘制单个数字对应的数码管 -步骤2:获得一串数字,绘制对应的数码管 -步骤3:获得当前系统时间,绘制对应的数码管   代码段1: import turtle ...

  4. 【Python】七段数码管绘制日期年月日

    七段数码管是一种展示数字的有效方式. 请用程序绘制当前系统时间对应的七段数码管,效果如下: ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬ ...

  5. 【Python】七段数码管绘制问题

    问题分析: 绘制路径: 代码: import turtle #引入绘图库turtle def drawLine(draw): #绘制单段数码管turtle.pendown() if draw else ...

  6. python彩色七段数码管绘制

    #七段数码管的绘制.py from turtle import * from random import * import time # 绘制单段间隔 def drawGap():penup()fd( ...

  7. #Python语言程序设计Demo - 七段数码管绘制

    Python设计七段数码管绘制 单个数码管效果: 设计总数码管效果: Pyhton 编程: #七段数码管绘制 import turtle as t import time as T def drawG ...

  8. python七段数码管绘制单个数字_使用Python的turtle库实现七段数码管绘制

    七段数码管绘制: 七段数码管是由7段数码管拼接而成,每段有亮或不亮两种情况,改进的七段数码管还包括一个小数点位置. 七段数码管能形成2^7=128种状态,其中部分状态能够显示易于人们理解的数字或字母含 ...

  9. python七段数码管绘制英文字母_Python实例之七段数码管绘制理解

    Python 实例之七段数码管绘制理解 八段线的编号如上图所示.基本逻辑为画笔从 1 走到 7 ,每一步画笔落下代表画或者是 画笔抬起代表不画,最终形成 1-9 的数字排列.以下理解均为个人学习理解. ...

最新文章

  1. 利用python爬取IP地址归属地等信息!
  2. bootstrap Table API和一些简单使用方法
  3. 医院电脑瘫痪 病人排长队苦等5小时
  4. 貌似长沙有个用膳吧外卖网
  5. Vue笔记(六)——Vue组件通信Vuex
  6. POJ 1014 Dividing 背包
  7. 环球影城门票开售,开园日门票1分钟内售罄
  8. View Controller Programming Guide for iOS---(三)---Using View Controllers in Your App
  9. 如何在java对象里访问Spring中已加载的property内容
  10. linux gt240驱动下载,支持GT540M NVIDIA新款Linux显卡驱动
  11. MT7628学习笔记(13)——ipk软件包编写与应用
  12. Python爬虫获取PPT模板
  13. Robotium-基础理论介绍
  14. 【见闻录系列】浅谈搜索系统与推荐系统的一点区别
  15. 程序员是不是青春饭?年纪大了何去何从
  16. Beta版本——第五次冲刺博客
  17. 事件回放:因「鹿晗、关晓彤」公布恋情,微博瘫痪了……
  18. 关于机器学习,我总结了可能是目前最全面最无痛的入门路径和资源!
  19. Linux paste合并文件,使用多个字符作为间隔符
  20. ext3格式化成ext4

热门文章

  1. 爱心跳动效果 CSS实现
  2. 轻松记海量Linux运维面试题
  3. 访问cn.bing.com时重定向次数过多(必应搜索无法使用)
  4. ElementUI 引入Jquery
  5. iOS 中使用Mupdf教程 pdf阅读器
  6. tensorflow-gpu测试代码以及版本检测
  7. 百家号自媒体过新手期要多久?
  8. 【C++】CRTP:奇异递归模板模式
  9. 英雄联盟:EDG鏖战四局终获S8门票,IG中单rookie小钰公布恋情
  10. 小试国产开源HTAP分布式NewSQL数据库TiDB-v5.3.0