这是我在这个网站上发表的第一篇文章,我正在参加编程介绍的在线课程,这对于一个介绍非常困难。我以前没有编码经验,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之间,并且是一个整数),我需要此函数返回true,我确定它是合法使用另一个名为getNumInsults
which = numInsults
和数字来自之前的函数......
number = int(input("\nHow many insults do you want? \
Enter in range 100 to 10,000: "))
我希望我把所有内容都包括在内......我的主要问题是:我怎样才能停止收到错误?
答案 0 :(得分:1)
我发现此代码存在一些问题,您可以修复这些问题并尝试
以下两行
def checkInsultsFile(numInsults, Insults="Insults.txt"):
numInsults = number ## Wrong: number is not known and numInsults assigned not a good idea)
有一个问题 - 您正在将numInsults
传递给该函数,并在下一行中再次为其赋值。这当然不是期望/预期的。当您将其作为参数传递时,numInsults
将在您的程序中可用。此外number
未在任何地方定义,是否在文件中的其他位置定义?这是一个潜在的错误。记住 - 通常你不应该为传递给函数的参数赋值(在其他编程语言中有些情况可能需要/有用但不在这里)。
第二个参数有一个默认值“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中常见的东西。
希望这有助于您开始修复代码并希望自己修复错误。
答案 1 :(得分:0)
你是怎么称呼这个功能的?你已经定义它需要1-2个参数,但它需要至少1个参数我的猜测是,在你的代码的其他地方,你有:
isOk = checkInsultsFile()
当你应该拥有的是:
isOk = checkInsultsFile(101)
或者,使用可选参数:
isOk = checkInsultsFile(101, "myInsults.txt")
修改强>
虽然OP没有说,但我相信有问题的函数实际上是一个类的一部分,在这种情况下它的第一个参数应该是self
。所以定义应该是:
def checkInsultsFile(self, numInsults, Insults="Insults.txt"):
...
虽然您仍然可以按上述方式调用该功能。