为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Python 海龟从用户的邮政编码输入中打印邮政条码

使用 Python 海龟从用户的邮政编码输入中打印邮政条码

慕的地6264312 2021-06-28 13:39:04
我知道我在这里可能有很多错误,而且我只是一个初学者,但我完全不知道将输入的数字与邮政条形码对应的更简单方法是什么。我在这里的目标,或者说我想要做的,是输入用户的邮政编码,然后输入每个数字,将其转换为行(短和长),打印出条形码。这是我到目前为止。我已经根据邮政条码转换表定义了每个数字及其对应的行:import turtlet = turtlet.pensize(2)t.hideturtle()t.left(90)t.speed('fastest')def print_zero():    long()    long()    short()    short()    short()    returndef print_one():     short()     short()     short()     long()     long()...现在我一直这样做到print_nine(). 之后print_nine(),我进入...def long():    t.fd(14)    t.up()    t.bk(14)    t.right(90)    t.fd(6)    t.down()def short():    t.fd(6)    t.up()    t.bk(6)    t.right(90)    t.fd(6)    t.left(90)    t.down()t.up()t.goto(0, -50)t.down()if digit == '0':    print(print_zero)elif digit == '1':    print(print_one)elif digit == '2':    print(print_two)elif digit == '3':    print(print_three)elif digit == '4':    print(print_four)elif digit == '5':    print(print_five)elif digit == '6':    print(print_six)elif digit == '7':    print(print_seven)elif digit == '8':    print(print_eight)elif digit == '9':    print(print_nine)else:    print('Please print a valid zipcode.')我还需要调用main(),我会将 main 放在代码的末尾吗?
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

这是我将采取的下一步(重新)安排您的代码:


from turtle import Screen, Turtle


def short(t):

    t.forward(6)

    t.penup()

    t.backward(6)

    t.right(90)

    t.forward(6)

    t.left(90)

    t.pendown()


def long(t):

    t.forward(14)

    t.penup()

    t.backward(14)

    t.right(90)

    t.forward(6)

    t.left(90)

    t.down()


def print_zero(t):

    long(t)

    long(t)

    short(t)

    short(t)

    short(t)


def print_one(t):

    short(t)

    short(t)

    short(t)

    long(t)

    long(t)


# ...


DIGITS = {

    '0': print_zero,

    '1': print_one,

    # ...

}


if __name__ == '__main__':

    screen = Screen()

    screen.title('Zip Code to Bar Code')


    turtle = Turtle(visible=False)

    turtle.speed('fastest')

    turtle.pensize(2)

    turtle.left(90)


    turtle.penup()

    turtle.sety(-50)

    turtle.pendown()


    zipcode = screen.textinput('Zip Code', 'Please enter a valid zipcode:')


    if zipcode:

        for digit in zipcode:

            if digit in DIGITS:

                DIGITS[digit](turtle)


    screen.mainloop()

现在应该是一系列的小步骤来定义一个main()函数;在代码顶部定义一些常量,这样 6、14、-50 和 2 之类的数字就不会出现在它的中间,并且可以轻松调整;添加的错误信息(例如,如果有什么digit不DIGITS)。请记住,main()你是怎么想现在就用你的代码,但外面的一切main()设计应考虑别人的库来使用,以解决未来的问题.

//img1.sycdn.imooc.com//60e412dd0001e55001880068.jpg

查看完整回答
反对 回复 2021-07-06
  • 1 回答
  • 0 关注
  • 273 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号