<p>我试图编写一个绘制Spirograph的Python turtle程序,但我始终收到以下错误:</p>
<pre><code>Traceback (most recent call last):
File "C:\Users\matt\Downloads\spirograph.py", line 36, in <module>
main()
File "C:\Users\matt\Downloads\spirograph.py", line 16, in main
spirograph(R,r,p,x,y)
File "C:\Users\matt\Downloads\spirograph.py", line 27, in spirograph
spirograph(p-1, x,y)
TypeError: spirograph() missing 2 required positional arguments: 'x' and 'y'
>>>
</code></pre>
<p>这是代码:</p>
<pre><code>from turtle import *
from math import *
def main():
p= int(input("enter p"))
R=100
r=4
t=2*pi
x= (R-r)*cos(t)-(r+p)*cos((R-r)/r*t)
y= (R-r)*sin(t)-(r+p)*sin((R-r)/r*t)
spirograph(R,r,p,x,y)
def spirograph(R,r,p,x,y):
R=100
r=4
t=2*pi
x= (R-r)*cos(t)-(r+p)*cos((R-r)/r*t)
y= (R-r)*sin(t)-(r+p)*sin((R-r)/r*t)
while p<100 and p>10:
goto(x,y)
spirograph(p-1, x,y)
if p<10 or p>100:
print("invalid p value, enter value between 10 nd 100")
input("hit enter to quite")
bye()
main()
</code></pre>
<p>我知道这可能有一个简单的解决方案,但我真的不知道我做错了什么,这是我在计算机科学1班的一个练习,我不知道如何纠正错误。</p>
<p>该错误告诉您使用的参数太少,无法调用<code>spirograph</code></p>
<p>更改此代码:</p>
<pre><code>while p<100 and p>10:
goto(x,y)
spirograph(R,r, p-1, x,y) # pass on the missing R and r
</code></pre>
<p>虽然您没有使用这些参数,但是您仍然必须将它们交给函数来调用它。</p>