我正在填写一本初学者的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'的参数,依此类推。
所以我必须遗漏一些基本的东西。
你能帮忙吗?
答案 0 :(得分:9)
a
和banana
是变量名称。由于您从未定义其中任何一个(例如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)