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

我知道我在这里可能有很多错误,而且我只是一个初学者,但我完全不知道将输入的数字与邮政条形码对应的更简单方法是什么。我在这里的目标,或者说我想要做的,是输入用户的邮政编码,然后输入每个数字,将其转换为行(短和长),打印出条形码。


这是我到目前为止。我已经根据邮政条码转换表定义了每个数字及其对应的行:


import turtle


t = turtle

t.pensize(2)

t.hideturtle()

t.left(90)

t.speed('fastest')


def print_zero():

    long()

    long()

    short()

    short()

    short()

    return


def 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 放在代码的末尾吗?


慕的地6264312
浏览 274回答 1
1回答

狐的传说

这是我将采取的下一步(重新)安排您的代码:from turtle import Screen, Turtledef 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()设计应考虑别人的库来使用,以解决未来的问题.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python