如何通过添加参数来推广函数?

时间:2013-09-28 20:45:52

标签: python

我正在填写一本初学者的Python书。 我想我明白了问题是什么。

封装到一个函数中,并对其进行概括,使其接受字符串和字母作为参数。

fruit = "banana"
count = 0
for char in fruit:
    if char == 'a':
        count += 1
print count

我的回答是:

def count_letters(letter, strng):
    fruit = strng
    count = 0
    for char in fruit:
        if char == letter:
            count += 1
    print count

count_letters(a, banana)

但这是错误的:名称'a'未定义。我不知道我哪里出错了。 我认为翻译应该知道'a'是'letter'的参数,依此类推。

所以我必须遗漏一些基本的东西。

你能帮忙吗?

3 个答案:

答案 0 :(得分:9)

abanana是变量名称。由于您从未定义其中任何一个(例如a = 'x'),因此解释器无法使用它们。

您需要将它们用引号括起来并将它们转换为字符串:

count_letters('a', 'banana')

或预先分配它们并传递变量:

l = 'a'
s = 'banana'

count_letters(l, s)

答案 1 :(得分:0)

#!/usr/bin/python2.7

word = 'banana'

def count(word, target) :
    counter = 0
    for letter in word :
        if letter == target :
            counter += 1
    print 'Letter', letter, 'occurs', counter, 'times.'

count(word, 'a')

答案 2 :(得分:0)

这是在Python 3中使用的:

def count_letters(letter, strng):
count = 0
for char in letter:
    if char == strng:
        count += 1
print(count)
a = input("Enter the word: ")
b = input("Enter the letter: ")
count_letters(a, b)