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')
非常感谢!
答案 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")