我是python中的初学者,我正在尝试在python中创建一个小程序来计算文本文件中的重复字符
这是代码
import string
def count_char(text,char):
count = 0
for c in text:
if c == char:
count +=1
return count
filename = raw_input("Enter File name:")
with open(filename) as f:
text=f.read()
print(count_char(text,"r"))
但它将输出打印为
>> 0
请告诉我我的代码有什么问题?
答案 0 :(得分:2)
“返回计数”中的识别问题
def count_char(text, char):
count = 0
text = list(text)
for c in text:
if c == char:
count += 1
return count
filename = raw_input("Enter File name:")
with open(filename) as f:
text = f.read()
print(count_char(text, "r"))
答案 1 :(得分:1)
将您的回报移至for循环之外。它目前只进行了1次迭代。
答案 2 :(得分:1)
如果要计算给定字符在字符串(或文件)中出现的次数,可以使用count方法:
with open(filename) as f:
text = f.read()
print(text.count('r'))
答案 3 :(得分:1)
您可以使用集合来获取所有字符频率的字典,并查看字符重复的次数。
from collections import Counter
with open(file) as f:
c = Counter()
for x in f:
c += Counter(x.strip())
示例:数据将按如下方式存储:
Counter({'a': 3, ' ': 3, 'c': 3, 'b': 3, 'e': 3, 'd': 3, 'g': 3, 'f': 3})