【发布时间】:2012-11-23 16:11:16
【问题描述】:
使用下面的函数,输入在空间上分割(即向前 20),turtle 将执行颜色和写入函数,但使用 forward、back、right 或 left 什么都不做,只会打开一个空白的海龟窗口
这是我的函数和代码的精简版本,用于前进和后退命令:
import sys
import turtle
def parse_line(line):
global items_in_line
items_in_line = line.split(" ",1)
if items_in_line[0] == "forward":
if isinstance(items_in_line[1], int):
return items_in_line
elif items_in_line[0] == ("back" or "backward"):
if isinstance(items_in_line[1], int):
return items_in_line
return items_in_line
def comm(items_in_line):
m = items_in_line[1]
if items_in_line[0] == "forward":
if isinstance(m,int) == True:
turtle.forward(m)
if items_in_line[0] == ("backward" or"back"):
if isinstance(m,int) == True:
turtle.back(m)
line=input("Enter a turtle command or enter 'file' to load commands from a file")
x = parse_line(line)
y=comm(items_in_line)
【问题讨论】:
-
只是好奇-但是为什么您没有实施上一个问题的建议-因为您的“后退”位仍然不正确
-
我有,在它们不在 parse_line 的 def 中的括号中之前,这是导致错误的原因
-
Err - 这仍然不正确 - 在您接受的答案的底部是
items_in_line[0] in ("back", "backward"):这是应该写的方式;) -
啊,是的,出于某种原因,我认为它们可以互换。
-
@user1879595:
("backward" or "back")首先被评估(你明确要求 Python 这样做,把它放在括号中),结果是"backward"。所以你的比较和if items_in_line[0] == "backward"一样。
标签: python function python-3.x turtle-graphics