Python函数参数称为“未定义”

2024-10-03 04:38:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在学习Python课程,并进入了本书中有关函数的章节。(请注意,这是我第一次学习编程。)

我目前正在做的一个练习要求我把一堆条件语句转换成一个函数(即泛化)。你知道吗

简而言之,我的问题是:

在我定义了一个函数之后,让我们这样说。。。你知道吗

def count_letter(letter,string):
    count = 0
    for letter in string:
        count += 1
    print(count)

(据我所知,这就是我为这道题打出来的工作。)

我运行程序,然后像往常一样调用shell中的函数。。。你知道吗

(示例如下)

>>> count_letter(a,bananana)

我得到以下输出。。。你知道吗

    Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    count_letter(a,bananana)
NameError: name 'a' is not defined

我的老师和我们班的每个人都不明白为什么我们会犯这样的错误。如果是其他类型的错误,我们会理解,但是让shell告诉我们一个参数是“未定义的”(即一个变量,正如我们理解的错误),这是我们无法理解的。你知道吗

我们已经盯着代码看了一个星期了,还是搞不懂。你知道吗

任何帮助都将不胜感激。你知道吗

事后思考:我试图计算示例中“bananana”中“a”的数量。我想我应该澄清其中的模糊性。你知道吗


Tags: 函数in示例string定义编程count错误
1条回答
网友
1楼 · 发布于 2024-10-03 04:38:42

如前所述,abananana是变量的名称,应该以与您定义变量count类似的方式来定义。例如:

>>> character_to_search = 'l'
>>> text = 'Hello World'
>>> count_letter(character_to_search, text)

是正确的语法,因为character_to_searchtext都未定义。你知道吗

另一种可能性是,不是使用实际变量,而是将字符串直接传递给函数。在这种情况下,您的语法有点不正确。应该是(注意单引号):

count_letter('a', 'bananana')

相关问题 更多 >