缺少 1 个潜在参数

Missing 1 potential argument

这是我第一次 post 访问该网站,我正在学习编程入门在线课程,这对于入门来说相当困难。我以前没有编码经验,python 是我学习的第一门语言,所以如果我在论坛上做错了什么,请原谅我...无论如何,问题是:

所以我的问题是,如何满足函数中的参数?。例如,我有一个函数可以检查以前代码中的某些内容(我正在编写一个莎士比亚式的侮辱生成器,其中包含一些额外的内容,例如按字母顺序排序、保存、文件 I/O 等),我无法让我的 def 功能正常工作... 它一直给我一个 missing 1 potential argument numInsults 错误。 我怎样才能满足这个条件?

def checkInsultsFile(numInsults, Insults="Insults.txt"):
    numInsults = number
    isItAlpha = "Insults.txt".isalpha()
    if isItAlpha:
        return True

如果我的侮辱文本文件是按字母顺序排列的,并且 insults(numInsults) 的数量合法(在 100-10000 和一个整数) 我使用另一个名为 getNumInsults which = numInsults

的函数确保它是合法的

数字来自之前的函数...

number = int(input("\nHow many insults do you want? \
Enter in range 100 to 10,000: "))

我希望我包含了所有的答案...我总结的问题是:我怎样才能停止收到错误?

你是如何调用这个函数的?您已将其定义为采用 1-2 个参数,但它至少需要 1 个参数 我的猜测是,在代码的其他地方,您有:

isOk = checkInsultsFile()

当你应该拥有的是:

isOk = checkInsultsFile(101)

或者,使用可选参数:

isOk = checkInsultsFile(101, "myInsults.txt")

编辑:

虽然 OP 没有说,但我相信有问题的函数实际上是 class 的一部分,在这种情况下,它的第一个参数应该是 self。所以定义实际上应该是:

def checkInsultsFile(self, numInsults, Insults="Insults.txt"):
    ...

尽管您仍然会像上面那样调用该函数。

我发现这段代码有几个问题,也许你可以解决这些问题并尝试

在下面两行

def checkInsultsFile(numInsults, Insults="Insults.txt"):
    numInsults = number ## Wrong: number is not known and numInsults assigned not a good idea)

出现问题 - 您将 numInsults 传递给函数并在下一行再次为其赋值。那当然不是 desired/expected。当您将 numInsults 作为参数传递时,它将在您的程序中可用。 number 也没有在任何地方定义,它是在文件的其他地方定义的吗?这是一个潜在的错误。记住——通常你不应该为传递给函数的参数赋值(在其他编程语言中,它可能是 required/useful 但这里不是)。

第二个参数有一个默认值 "Insults.txt",这在 Python 中很有用,它让您可以按以下方式调用函数 checkInsults - 所有三个都是合法的

checkInsults(10) # no value for Insults parameter - default is used
checkInsults(10, "another_insult.txt") # Insult is now set to "another_insult.txt" 

然而以下是非法的

checkInsults() # Here numInsults an integer is expected to be passed and you are passing nothing 

所以这应该会报错。 `期望 1 个参数得到 0 或类似的东西,但你的错误情况是我在 Python 中不常见的。

希望这有助于您入门和修复代码,并希望您自己修复错误。