python – 函数缺少2个必需的位置参数:’x’和’y’

python – 函数缺少2个必需的位置参数:’x’和’y’,第1张

概述我正在尝试编写一个绘制Spirograph的 Python龟程序,我不断收到此错误: Traceback (most recent call last): File "C:\Users\matt\Downloads\spirograph.py", line 36, in <module> main() File "C:\Users\matt\Downloads\spirograph 我正在尝试编写一个绘制Spirograph的 Python龟程序,我不断收到此错误:

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,y)TypeError: spirograph() missing 2 required positional arguments: 'x' and 'y'>>>

这是代码:

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,y)def spirograph(R,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,y)    if p<10 or p>100:        print("invalID p value,enter value between 10 nd 100")    input("hit enter to quite")    bye()main()

我知道这可能有一个简单的解决方案,但我真的无法弄清楚我做错了什么,这是我的计算机科学1课的练习,我不知道如何修复错误.

解决方法 回溯的最后一行告诉您问题所在:

file "C:\Users\matt\Downloads\spirograph.py",y) # <--- this is the problem lineTypeError: spirograph() missing 2 required positional arguments: 'x' and 'y'

在你的代码中,spirograph()函数有5个参数:def spirograph(R,y),它们是R,y.在错误消息中突出显示的行中,您只传递三个参数p-1,y,并且由于这与函数所期望的不匹配,因此Python会引发错误.

我还注意到你正在覆盖函数体中的一些参数:

def spirograph(R,y):    R=100 # this will cancel out whatever the user passes in as `R`    r=4 # same here for the value of `r`    t=2*pi

这是一个简单的例子:

>>> def example(a,b,c=100):...    a = 1  # notice here I am assigning 'a'...    b = 2  # and here the value of 'b' is being overwritten...    # The value of c is set to 100 by default...    print(a,c)...>>> example(4,5)  # Here I am passing in 4 for a,and 5 for b(1,2,100)  # but notice its not taking any effect>>> example(9,10,11)  # Here I am passing in a value for c(1,11)

由于您始终希望将此值保留为默认值,因此您可以从函数的签名中删除这些参数:

def spirograph(p,y):    # ... the rest of your code

或者,您可以给他们一些默认值:

def spirograph(p,R=100,r=4):    # ... the rest of your code

由于这是一个分配,其余由你决定.

总结

以上是内存溢出为你收集整理的python – 函数缺少2个必需的位置参数:’x’和’y’全部内容,希望文章能够帮你解决python – 函数缺少2个必需的位置参数:’x’和’y’所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存