python类型错误:a未定义

时间:2012-07-25 19:39:18

标签: python variables types

Python新手在这里。我正在编写一个程序来计算子字符串是一个字符串的次数,但继续收到错误消息:TypeError:a未定义。我看过/ googled类似的线程,但代码通常很复杂,很难遵循。

这是我的代码:

def stringcount(char, word):
for eachChar in word:
    if char==eachChar:
        count=count+1
        return count
    print count

stringcount('a', 'apple')

非常感谢!

3 个答案:

答案 0 :(得分:4)

def stringcount(c, word):
    count = 0
    for eachChar in word:
        if c==eachChar:
            count=count+1

    return count

>>> stringcount('a', 'apple')
1
>>>

但在这种情况下,你可以简单地使用:

>>> 'apple'.count('a')
1

答案 1 :(得分:2)

此代码很危险。您没有初始化count,因此如果count作为名称空间中的变量存在,您每次都可能得到不同的结果。例如,如果多次调用该函数,count将不会重置,第二次调用该函数将返回2。以下代码更安全且有效。

def stringcount(char, word):
    count = 0
    for eachChar in word:
        if char==eachChar:
            count += 1
    return count

>>> stringcount('a', 'apple')
1

另请注意,您只需执行'apple'.count('a')即可。

一个漂亮的单行做同样的事情:

def stringcount(char, word):
    return sum(x==char for x in word)
>>> stringcount('p', 'apple')
2

答案 2 :(得分:0)

如果你不是为编程练习写这篇文章,你可以这样做:

def stringcount(c, word):
    return word.count(c)

print stringcount("a", "apple")

文档:http://docs.python.org/library/string.html#string.count