zoukankan      html  css  js  c++  java
  • 七段数码管

    整理了下思路,其中,7段数码管的分析如下:

    第一笔    t.fd(40)   t.right(90)                                         如果这个数是   [2, 3, 4, 5, 6, 8, 9]                 这一笔需要                   否则    这一笔不需要

    第二笔    t.fd(40)    t.right(90)                                        如果这个数是   [0, 1, 3, 4, 5, 6, 7, 8, 9]         这一笔需要                   否则    这一笔不需要

    第三笔    t.fd(40)    t.right(90)                                        如果这个数是   [0, 2, 3, 5, 6, 8, 9]                 这一笔需要                   否则    这一笔不需要

    第四笔    t.fd(40)    t.right(90)                                        如果这个数是   [0, 2, 6, 8]                            这一笔需要                   否则    这一笔不需要

    第五笔    t.left(90)   t.fd(40)    t.right(90)                         如果这个数是   [0, 4, 5, 6, 8, 9]                    这一笔需要                   否则    这一笔不需要

    第六笔    t.fd(40)    t.right(90)                                        如果这个数是   [0, 2, 3, 5, 6, 7, 8, 9]            这一笔需要                   否则    这一笔不需要

    第七笔    t.fd(40)    t.right(90)                                        如果这个数是   [0, 1, 2, 3, 4, 7, 8, 9]            这一笔需要                   否则    这一笔不需要

    所以定义两个判断分支,这一笔需不需要,

    画这个数字的函数。这个数字是不是在这一个区间里面。其余按照正常的程序路径来写。

    所以,编写的程序代码如下:

    def drawline (flag):     #定义是否需要这一笔的这一个函数

    if flag:                      #判断语句,如果这个值为真,这个数是否需要这一笔

    t.down()                   #落笔,需要这一笔。

    else:                       #否则

    t.up()                      #抬笔,不需要这一笔

    t.fd(40)                   #执行动作,往前走

    t.right(90)               # 换向

    def drawnum(num)  #定义第二个函数,画数字

    画第一笔 ,调用这个函数,判断这个数字是否需要。

    第二笔,   同上

    第三笔,   同上

    第四笔,   同上

    t.right(90)  换向

    第五笔,   同上

    第六笔,   同上

    第七笔,   同上

    调用这个函数,画这个数字。

    总之,现阶段有点乱,还需要改进。

    代码整理如下:

    import turtle
    t = turtle.Pen()
    t.shape("turtle")
    t.speed(3)

    def draWline(flag):
    if flag:
    t.down()
    else:
    t.up()
    t.fd(40)
    t.right(90)

    def drawnum(num):
    draWline(True) if num in [2,3,4,5,6,8,9] else draWline(False)
    draWline(True) if num in [0,1,3,4,5,6,7,8,9] else draWline(False)
    draWline(True) if num in [0,2,3,5,6,8,9] else draWline(False)
    draWline(True) if num in [0,2,6,8] else draWline(False)
    t.left(90)
    draWline(True) if num in [0,4,5,6,8,9] else draWline(False)
    draWline(True) if num in [0,2,3,5,6,7,8,9] else draWline(False)
    draWline(True) if num in [0,1,2,3,4,7,8,9] else draWline(False)
    drawnum(5)

    以上写下来,下次翻阅的话,方便下次快速取用。
  • 相关阅读:
    Python中__new__()方法的使用和实例化
    python __str__ , __repr__区别
    python中%r和%s的区别
    面向对象进阶
    getattr(sys.modules[__name__], func_name)
    os.path.dirname(__file__)使用
    bound和unbound方法,类的绑定和非绑定是什么
    基于python中staticmethod和classmethod的区别(详解)
    python基础----特性(property)、静态方法(staticmethod)、类方法(classmethod)、__str__的用法
    python @classmethod 的使用场合
  • 原文地址:https://www.cnblogs.com/medigrat/p/11734614.html
Copyright © 2011-2022 走看看