亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 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()設計應考慮別人的庫來使用,以解決未來的問題.

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

查看完整回答
反對 回復 2021-07-06
  • 1 回答
  • 0 關注
  • 316 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號