案例分析:绘制七段电子数码管时间

本文通过Python的turtle库,详细介绍了如何绘制七段数码管,并展示了如何结合随机颜色和逻辑判断绘制不同数字的过程。内容包括绘制间隙、单端数码管、单个数字数码管的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  ]
  },
  {
   "cell_type": "markdown",
   "id": "8778c0a1",
   "metadata": {},
   "source": [
    "## 0.导入库模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "f20eb002",
   "metadata": {},
   "outputs": [],
   "source": [
    "#import turtle          #导入turtle函图库,其方法前面一定要添加库名turtle\n",
    "from turtle import *   #导入turtle库,其方法前面一定不能添加库名\n",
    "from random import *   #导入random库,其方法前面一定不能添加库名\n",
    "import time            #导入time库,其方法前面一定要添加库名time"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "461adf10",
   "metadata": {},
   "source": [
    "## 1.绘制单端数码管的间隙"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "80436157",
   "metadata": {},
   "outputs": [],
   "source": [
    "def drawGap():\n",
    "     penup()     #设置画笔为飞行模式\n",
    "     fd(5)        #画笔前进5像素\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a9ec82f0",
   "metadata": {},
   "source": [
    "## 2.绘制单端数码管"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "78f10980",
   "metadata": {},
   "outputs": [],
   "source": [
    "def drawLine(draw):\n",
    "    drawGap()     #调用间隙函数(画间隙)\n",
    "    if draw:\n",
    "        pendown()     #设置如果函数参数draw为真时画笔为工作模式\n",
    "    else:\n",
    "        penup()       #否则画笔仍未飞行模式\n",
    "    fd(20)            #画笔向前行进20像素\n",
    "    drawGap()         #第2次调用间隙函数\n",
    "    right(90)         #将画笔向下(前进向右)旋转90度\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b7628b13",
   "metadata": {},
   "source": [
    "## 3.绘制单个数字数码管"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9922911e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def drawDigit(digit):\n",
    "    #画第1段数码管\n",
    "    pencolor(random(),random(),random())       #用随机函数设置画笔的颜色\n",
    "    drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)   #用if...else drawLine(False)\n",
    "             #用if...else表达式画第1段数码管\\\n",
    "    #画第2段数码管\n",
    "    pencolor(random(),random(),random())       #用随机函数设置画笔的颜色\n",
    "    drawLine(True) if digit in [2] else drawLine(False)\n",
    "    \n",
    "    #画第3段数码管\n",
    "    pencolor(random(),random(),random())       #用随机函数设置画笔的颜色\n",
    "    drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)\n",
    "    \n",
    "    #画第4段数码管\n",
    "    pencolor(random(),random(),random())       #用随机函数设置画笔的颜色\n",
    "    drawLine(True) if digit in [0,2,4,5,6,8,9] else drawLine(False)\n",
    "    \n",
    "    left(90)      #将画笔向上(前进向左)旋转90度\n",
    "    #画第5段数码管\n",
    "    pencolor(random(),random(),random())       #用随机函数设置画笔的颜色\n",
    "    drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)\n",
    "    \n",
    "    #画第6段数码管\n",
    "    pencolor(random(),random(),random())       #用随机函数设置画笔的颜色\n",
    "    drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)\n",
    "    \n",
    "    #画第7段数码管\n",
    "    pencolor(random(),random(),random())       #用随机函数设置画笔的颜色\n",
    "    drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)\n",
    "    \n",
    "    left(180)     #将画笔反向(旋转180度)\n",
    "    penup()       #将画笔设置飞行模式\n",
    "    fd(20)        #将画笔前进20像素 "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2e4b0af",
   "metadata": {},
   "source": [
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值