python七段数码管的详解,Python入门基础:七段数码管绘制

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

2.何为七段数码管

数码管是一种价格便宜、使用简单的电子器件,广泛应用于价格较低的电子类产品中,其中,七段数码管最为常用。七段数码管(Seven-segment Indicator)由七段数码管拼接而成,每段有亮或不亮的两种情况,且包括一个小数点的位置。

3.在绘制数码管的显示动态时,可以自定义顺序,如图1.

901b19bee3e0147221f1ba2372d1e8da.png

图1 七段数码管的绘制顺序

4.源代码,包含部分注释

import turtle,datetime#引用

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

turtle.penup()

turtle.fd(5)

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

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

turtle.fd(40)

drawGap()

turtle.right(90)

def drawDigit(d):#根据数字绘制七段数码管,True或False决定是否抬起画笔

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)

turtle.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,8,9] else drawLine(False)

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

turtle.left(180)

turtle.penup()

turtle.fd(20)

def drawDate(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:

drawDigit(eval(i))

def main():

turtle.setup(800,350,200,200)#显示窗体的大小

turtle.penup()

turtle.fd(-350)

turtle.pensize(5)

drawDate(datetime.datetime.now().strftime('%Y-%m=%d+1'))#日期的读取方式,便于控制输出的顺序(年,月,日)

turtle.hideturtle()

raw_input('please press enter to close this window.')#解决闪退问题

main()

5.运行结果

0c3703504e83bebc663b0b44df6b086a.png

标签:turtle,False,drawLine,Python,else,数码管,七段

来源: https://www.cnblogs.com/chenting123456789/p/11516986.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python图标的演变_Python3 生成icon图标

首先安装所使用的库 pillow, pillow 是用来取代 PIL 的, pip3 install pillow 安装成功图:A866FFD7-2283-4BFB-8313-DBDEE909A579.png 简单的代码: from __future__ import print_function import os, sys from PIL import Image …

IDEA 热部署 仅支持jdk1.6,1.7

第一安装 dcevm 下载地址http://ssw.jku.at/dcevm/binaries/ java -jar dcevm-0.2-win.jar ,选择需要安装该补丁的jdk,点击按钮Install即可 第二:IDEA 在Debug模式下运行,这时随便修改文件,自动发布到tomcat中 超级快…

php中perl配置,Windows下 Apache、PHP和Perl的安装配置

在安装AWStats7.0和 JAWStats之前需要配置其环境,而运行AWStats需要perl支持,运行JAWStats需要PHP支持,这篇文章将具体介绍其环境的安装配置。环境Windows 2003Apache2.2Per5.12lPHP5(开源)Apache:http://httpd.apache.org/Perl&a…

arraylist 初始化_ArrayList(JDK1.8)源码解析

既然是看源码,那我们要怎么看一个类的源码呢?这里我推荐的方法是:1)看继承结构看这个类的层次结构,处于一个什么位置,可以在自己心里有个大概的了解。2)看构造方法在构造方法中,看做了哪些事情,…

php Pthread 多线程 (二) Worker和Threaded

<?php //Worker是具有持久化上下文(执行环境)的线程对象 //Worker对象start()后&#xff0c;会执行run()方法&#xff0c;run()方法执行完毕&#xff0c;线程也不会消亡 class MySqlWorker extends Worker {private $name ;private $db null;public function __construct…

ios yymodel 将字典转数组模型_TensorNet——基于TensorFlow的大规模稀疏特征模型分布式训练框架

TensorNet是什么&#xff1f;TensorNet是一个构建在TensorFlow之上针对广告推荐等大规模稀疏场景优化的分布式训练框架。TensorNet的目标是让所有使用TensorFlow的开发者可以快速的、方便的训练出稀疏参数超过百亿的超大模型。训练带有大规模稀疏特征模型的主要挑战在广告、搜索…

mysql 索引及索引创建原则

是什么 索引用于快速的查询某些特殊列的某些行。如果没有索引&#xff0c; MySQL 必须从第一行开始&#xff0c;然后通过搜索整个表来查询有关的行。表越大&#xff0c;查询的成本越大。如果表有了索引的话&#xff0c;那么 MySQL 可以很快的确定数据的位置&#xff0c;而不用查…

【链表】Add Two Numbers

题目&#xff1a; You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. Input: (2 -> 4 -> 3) (5…

ecs服务器数据迁移_如何非常方便地从Windows文件服务器把数据完整地迁移到ONTAP Select...

这是一个续篇&#xff0c;如果你依然爱你的Windows文件服务器或者使用Windows文件服务没有任何问题的话&#xff0c;请忽略我。续自&#xff1a;从Windows文件服务器&#xff0c;到ONTAP Select软件定义存储感谢联想凌拓合作伙伴新锐英诚的帮助&#xff0c;我们成功地做到了从海…

oracle触发和存储过程,Oracle存储过程与触发器

Oracle存储过程与触发器存储过程存储过程最直接的理解&#xff1a;就是保存了批量的sql(select,insert,if for)&#xff0c;以后可以通过一个名字把这些批量的sql执行&#xff0c;使用存储过程在大批量数据查询或计算时会带来高性能&#xff0c;存储过程编写和调试比较复杂&…

swift int转string_Swift集合类型协议浅析(下)

关注【搜狐技术产品】公众号&#xff0c;第一时间获取技术干货导读本篇是Swift集合类型协议浅析系列文章的下篇&#xff0c;在这篇文章中&#xff0c;我们将继续围绕集合类型协议展开讨论&#xff0c;侧重点更多地关注于String相关的周边协议。StringProtocol代表一个字符串&am…

oracle视图执行脚本,Sh脚本中查询Oracle v$视图时需要在$号前加转义符“\”

DBA经常会部署一些sh脚本登陆Oracle数据库查询v$动态视图得到一些东西来实际管理自动化的目的&#xff0c;但在sh脚本中写ORACLE SQL语句时&#xff0c;如果语句查询v$视图&#xff0c;直接写v$XXXX是不能成功的&#xff0c;shell会将$当成一个参数来处理。以下面一段简单的sh脚…

微信小程序页面跳转与返回并回传数据

2019独角兽企业重金招聘Python工程师标准>>> A页面&#xff1a; .wxml文件 <view class"flex-wrp"><text style"width: 32%;">选择城市</text><input style"width: 68%;" type"text" bindtap"ci…

地址栏 输入 参数 刷新参数丢失_小米11 Pro屏幕参数曝光:2K屏幕+120Hz刷新率

本周一&#xff0c;高通已经宣布将于12月初举行的骁龙技术峰会上正式发布新一代旗舰处理器——骁龙875。根据此前的曝光消息&#xff0c;小米11系列将首发搭载这颗芯片&#xff0c;网上也已经开始对这款新机进行曝光。日前&#xff0c;海外知名论坛XDA在MIUI 12的代码中发现了一…

Cypress EZ-USB FX3 DMA模式下的串口通讯

由于公司设备升级后出了问题&#xff0c;需要对USB驱动进行修改&#xff0c;原本使用的是寄存器模式进行UART传输&#xff0c;但是由于FX3寄存器模式会出现长时间延时等待的问题&#xff0c;不得不对其传输模式进行修改。虽然赛普拉斯的EZ-USB FX3系列芯片功能强大&#xff0c;…

springboot md5加密_实在!基于Springboot和WebScoket,写了一个在线聊天小程序

基于Springboot和WebScoket写的一个在线聊天小程序(好几天没有写东西了&#xff0c;也没有去练手了&#xff0c;就看了看这个。。。)项目说明此项目为一个聊天的小demo&#xff0c;采用springbootwebsocketvue开发。其中有一个接口为添加好友接口&#xff0c;添加好友会判断是否…

suse 启动oracle11g,SuSe10下Oracle11g文件系统模式安装及配置、网络配置与连接

SuSe10下Oracle11g文件系统模式安装及配置、网络配置与连接概述本课程主要讲解oracle数据库软件的安装及配置&#xff0c;以及数据库的创建过程和网络配置与连接等&#xff1b;同时讲解一些数据库安装过程中的常见问题解决办法。注意&#xff1a;本文当中引用的package_name均为…

Python pyenv

一、简介 一般在操作系统中我们会安装多个Python版本&#xff0c;所以在进行Python版本切换时会比较麻烦&#xff0c;pyenv就提供了一种简单的方式&#xff0c;能简易地在多个Python版本中进行切换的工具&#xff0c;它简单而优雅。pyenv有以下功能&#xff1a; 1&#xff09;进…

oracle 增加间隔分区,oracle分区表之间隔分区(oracle 11g) - 漫兮网

范围分区允许用户根据分区键列值的范围创建分区。下面是一个按范围分区表的示例&#xff1a;create table sales6(sales_id number,sales_dt date)partition by range (sales_dt)(partition p0701 values less than (to_date(2007-02-01,yyyy-mm-dd)),partition p0702 values l…

c++ try catch语句_再问你一遍,你真的了解try..catch(finally)吗???

定义首先来看下 MDN 的定义&#xff1a;The try...catch statement marks a block of statements to try and specifies a response should an exception be thrown.try...catch语句标记要执行的语句&#xff0c;并指定一个当有异常抛出时候的响应简短的一句的确描述了try...ca…