代码
import turtle
window = turtle.Screen()
pen = turtle.Turtle()
def reset(p):
pen.up()
pen.goto(p);
pen.forward(30);
pen.down();
pen.forward(100);
def cdraw():
p = pen.position();
for x in range(180):
pen.backward(1)
pen.right(1)
return p;
reset
我的重置功能似乎不起作用,我认为问题出在我的goto(p)行上。我不确定我是否可以使用:
p = pen.position();
我的代码目前运行cdraw函数然后停止。
答案 0 :(得分:0)
您的上一个问题涉及不应包含的括号:
turtle.onscreenclick(star()) -> turtle.onscreenclick(star)
这是所需的反向缺失括号:
reset -> reset()
但还有其他问题 - 括号与否,永远不会出现任何直接跟在return
语句之后的代码:
return p;
reset # never reached
您提供的代码段从不调用cdraw()
,因此永远不会调用reset()
。最后,分号在正确编写的Python程序中确实没有位置。
以下是我对您的计划目标的最佳猜测,但没有足够的信息可以确定:
import turtle
def reset(p):
pen.up()
pen.goto(p)
pen.forward(30)
pen.down()
pen.forward(100)
def cdraw():
p = pen.position()
for x in range(180):
pen.backward(1)
pen.right(1)
reset(p)
window = turtle.Screen()
pen = turtle.Turtle()
cdraw()
window.exitonclick()
这些问题不是关于乌龟图形,而是关于基本的Python编程。
答案 1 :(得分:0)
首先:您不需要;
第二:要运行功能,您需要功能名称和()
- 即。 reset()
- 您有reset
第三:return
结束函数(返回调用函数的位置),return
之后的所有内容都不会被执行。
import turtle
# --- functions ---
def reset(p):
pen.up()
pen.goto(p);
pen.forward(30);
pen.down();
pen.forward(100);
def cdraw():
p = pen.position();
for x in range(180):
pen.backward(1)
pen.right(1)
# call function `reset` with `p`
reset(p)
# --- main ---
window = turtle.Screen()
pen = turtle.Turtle()
cdraw()