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

七段数码管绘制:

七段数码管是由7段数码管拼接而成,每段有亮或不亮两种情况,改进的七段数码管还包括一个小数点位置。

七段数码管能形成2^7=128种状态,其中部分状态能够显示易于人们理解的数字或字母含义。因此被广泛使用。

使用turtle库并使用函数封装绘制七段数码管,显示当前系统日期和时间。

该问题的IPO描述如下:

输入:当前日期的数字形式。

处理:根据每个数字绘制七段数码管表示。

输出:绘制当前日期的七段数码管表示。

代码如下:

# DrawSevenSegDisplay.py

import turtle, datetime

def drawLine1(draw): # 绘制单段数码管

turtle.pendown() if draw else turtle.penup()

turtle.fd(40)

turtle.right(90)

def drawDigit1(digit): # 根据数字绘制七段数码管

drawLine1(True) if digit in [2, 3, 4, 5, 6, 8, 9] else drawLine1(False)

drawLine1(True) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine1(False)

drawLine1(True) if digit in [0, 2, 3, 5, 6, 8, 9] else drawLine1(False)

drawLine1(True) if digit in [0, 2, 6, 8] else drawLine1(False)

turtle.left(90)

drawLine1(True) if digit in [0, 4, 5, 6, 8, 9] else drawLine1(False)

drawLine1(True) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine1(False)

drawLine1(True) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine1(False)

turtle.left(180)

turtle.penup()

turtle.fd(20)

def drawDate1(date): # 获得要输出的数字

for i in date:

drawDigit1(eval(i)) # 注意: 通过eval()函数将数字变为整数

def main1():

turtle.setup(800, 350, 200, 200)

turtle.penup()

turtle.fd(-300)

turtle.pensize(5)

drawDate1(datetime.datetime.now().strftime('%Y%m%d'))

turtle.hideturtle()

main1()

程序运行结果:

python七段数码管绘制单个数字_使用Python的turtle库实现七段数码管绘制_第1张图片

带有“年、月、日”的程序代码如下:

#------another:

#DrawSevenSegDisplay.py

import turtle, datetime

def drawGap(): #绘制数码管间隔

turtle.penup()

turtle.fd(5)

def drawLine2(draw): #绘制单段数码管

drawGap()

turtle.pendown() if draw else turtle.penup()

turtle.fd(40)

drawGap()

turtle.right(90)

def drawDigit2(d): #根据数字绘制七段数码管

drawLine2(True) if d in [2,3,4,5,6,8,9] else drawLine2(False)

drawLine2(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine2(False)

drawLine2(True) if d in [0,2,3,5,6,8,9] else drawLine2(False)

drawLine2(True) if d in [0,2,6,8] else drawLine2(False)

turtle.left(90)

drawLine2(True) if d in [0,4,5,6,8,9] else drawLine2(False)

drawLine2(True) if d in [0,2,3,5,6,7,8,9] else drawLine2(False)

drawLine2(True) if d in [0,1,2,3,4,7,8,9] else drawLine2(False)

turtle.left(180)

turtle.penup()

turtle.fd(20)

def drawDate2(date):

turtle.pencolor("red")

for i in date:

if i == '-':

turtle.write('年',font=("Arial", 18, "normal"))

turtle.pencolor("green")

turtle.fd(40)

elif i == '=':

turtle.write('月',font=("Arial", 18, "normal"))

turtle.pencolor("blue")

turtle.fd(40)

elif i == '+':

turtle.write('日',font=("Arial", 18, "normal"))

else:

drawDigit2(eval(i))

def main2():

turtle.setup(800, 350, 200, 200)

turtle.penup()

turtle.fd(-350)

turtle.pensize(5)

drawDate2(datetime.datetime.now().strftime('%Y-%m=%d+'))

turtle.hideturtle()

main2()

程序运行结果:

python七段数码管绘制单个数字_使用Python的turtle库实现七段数码管绘制_第2张图片

基于turtle库的七段数码管绘制

·文章结构 >样例及概览 >函数框架分析 >功能发展·样例及概览 七段数码管,是信号灯.电子表等很多设备的显示形式.而利用python的turtle库,我们也可以模拟着写出一个动态生 ...

Python:turtle库的使用及图形绘制

目录 一.绘制一个八边形 二.绘制一个八角图形 三.简述问题 四.循环程序设计 五.绘制一个自己喜欢的图形 一.绘制一个八边形 使用turtle库,绘制一个八边形 代码: from turtle im ...

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

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

Python使用turtle库与random库绘制雪花

记录Python使用turtle库与random库绘制雪花,代码非常容易理解,画着玩玩还是可以的. 完整代码如下:   效果图如下:

Python之turtle库-小猪佩奇

Python之turtle库-小猪佩奇 #!/usr/bin/env python # coding: utf-8 # Python turtle库官方文档:https://docs.python.o ...

Python中turtle库的使用

Turtle图形库 Turtle库是Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下,常用函数有以下几种: 画笔控制函数 penup():抬起画笔: pendow ...

python 利用turtle库绘制七段数码管的方式,绘制当前事件(时分秒00:00:00)

# coding:utf-8# 绘制七段数码管,显示当前时间import timeimport turtle as tt # 绘制间隔def drawGap(): tt.penup() tt.fd(3 ...

Python入门基础:七段数码管绘制

1.在学习Python的过程中,运用所学的一些基础知识,进行一些简单的编程,可以收获很多乐趣.在生活中,LED灯无处不在,荧幕显示的广告词,给我们呈现出动态的视觉效果.下面,则以最简单的显示日期为例, ...

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

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

随机推荐

cocos2dx 实现flappybird

前两天在博客园看到网友实现的一个网页版的flappy bird,挂在360游戏平台,玩了一会儿得分超低,就很想自己做一个.刚好这两天炫舞的活都清了,就弄一下玩玩. 效果图 布局类GameScene.h ...

p2p投资理财入门篇(新手必备)

在互联网金融浪潮下,如果你只知道余额宝.理财通,如果你认为宝宝们就可以代表整个互联网金融,那可真是大错特错.这些年来,P2P这股强大势力一直在互联网金融领域兴风作浪,随着被高层正名.监管升级,P2P的 ...

论文笔记之:From Facial Parts Responses to Face Detection: A Deep Learning Approach

From Facial Parts Responses to Face Detection: A Deep Learning Approach ICCV 2015 从以上两张图就可以感受到本文所提方法 ...

深入理解HashMap

转自:http://annegu.iteye.com/blog/539465 Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复习一下.网上关于hashmap的文章很多 ...

TCP的核心系列 — SACK和DSACK的实现(一)

TCP的实现中,SACK和DSACK是比较重要的一部分. SACK和DSACK的处理部分由Ilpo Järvinen ([email protected]) 维护. tcp_ack() ...

Android中java层使用LocalSocket和底层进行通讯

原始文件:frameworks\base\services\java\com\android\server\NativeDaemonConnector.java private void listen ...

poi入门之读写excel

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.该篇是介绍poi基本的 ...

常用的settings.xml文件

/Users/bernie.cx/.m2/r ...

三十九、Linux 线程——线程的同步和互斥

39.1 概念 线程同步 是一个宏观概念,在微观上包含线程的相互排斥和线程先后执行的约束问题 解决同步方式 条件变量 线程信号量 线程互斥 线程执行的相互排斥 解决互斥的方式 互斥锁 读写锁 线程信号 ...

docker-compose &; docker 镜像/加速

docker-compose: http://sanwen.net/a/nuwruoo.html docker加速: http://guide.daocloud.io/dcs/daocloud-915 ...

你可能感兴趣的:(python七段数码管绘制单个数字_使用Python的turtle库实现七段数码管绘制)