pythonturtle怎么写_让Python的turtle命令更简短(译)
問題: 怎么才能讓我的項目代碼更少呢, 這個hangman圖形的定義代碼太多了
def joonista_mees(valede_pakkumiste_arv):
if valede_pakkumiste_arv == 0:
ht()
up()
right(90)
forward(150)
right(90)
forward(30)
right(180)
down()
forward(200)
back(170)
left(90)
forward(150)
right(90)
forward(100)
right(90)
if valede_pakkumiste_arv == 1:
forward(15)
right(90)
circle(15)
left(90)
up()
forward(30)
down()
if valede_pakkumiste_arv == 2:
forward(45)
backward(45)
right(45)
forward(20)
backward(20)
left(90)
if valede_pakkumiste_arv == 3:
forward(20)
backward(20)
right(45)
forward(45)
right(30)
if valede_pakkumiste_arv == 4:
forward(45)
backward(45)
left(60)
if valede_pakkumiste_arv == 5:
forward(45)
backward(45)
right(30)
up()
backward(67)
if valede_pakkumiste_arv == 6:
right(90)
forward(3)
right(45)
down()
forward(3)
backward(6)
forward(3)
right(90)
forward(3)
backward(6)
forward(3)
right(45)
up()
forward(6)
left(45)
down()
forward(3)
backward(6)
forward(3)
right(90)
forward(3)
backward(7)
有什么方法可以讓代碼更緊湊呢? 或許可以把一些代碼寫進同一行?
回答: 你可以寫一個小解釋器作為一種迷你語言
比如,你可以把
forward(3)
right(90)
forward(3)
backward(7)
編碼進字符串,像這樣dostring = "f 3 r 90 f 3 b 7",
它的解釋器可以這樣編寫:
def interpret( dostring ):
tokens = dostring.split()
for command_id in range(0, len(tokens), 2):
command = tokens[command_id]
param = int(tokens[command_id+1])
if command == "f":
forward( param )
elif command == "b":
backward( param )
elif command == "r":
right(param)
else:
print("Unknown command: %s" % command)
然后, 只需這樣調用interpret("f 3 r 90 f 3 b 7")
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的pythonturtle怎么写_让Python的turtle命令更简短(译)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java byte 判断相等_转发收藏
- 下一篇: python动态更新窗口上的图片_基于P