Python中的大小写计数问题

Python中的大小写计数问题,python,Python,从本质上说,我试图阅读一些文本并计算字母的实例。很简单。然而,无论我尝试什么,当我想要组合结果时,“E”和“E”都会得到不同的结果。以下是我所拥有的: import nltk import re f = open('mytext.txt') raw = f.read() #print raw #print len(raw) #7234 raw.lower() prompt = raw_input("Enter stuff: ") potato = re.compile(r'[a-z]*

从本质上说,我试图阅读一些文本并计算字母的实例。很简单。然而,无论我尝试什么,当我想要组合结果时,
“E”
“E”
都会得到不同的结果。以下是我所拥有的:

import nltk
import re

f = open('mytext.txt')
raw = f.read()
#print raw
#print len(raw) #7234

raw.lower()

prompt = raw_input("Enter stuff: ") 

potato = re.compile(r'[a-z]*', re.IGNORECASE)
potato = re.match(r'[a-z]*', prompt, re.IGNORECASE)
if potato: 
   print raw.count(prompt)
else:
   print "try again"

#document control f "e" = 808
#print result "e" = 802, "E" = 6
调用
raw.lower()。请尝试以下方法:

raw = raw.lower()
这:

不会做你认为它会做的事。换成

raw = raw.lower()
Python字符串是不可变的;对它们执行的任何操作都将返回一个带有该修改的新字符串

如果希望它对输入文本和用户输入的提示都不区分大小写,也可以更改

prompt = raw_input("Enter stuff: ") 


尝试
raw=raw.lower()
而不仅仅是
raw.lower()
不确定这是否重要,但如果您试图将raw转换为所有小写,则必须将raw.lower()保存为变量,即
raw_2=raw.lower()
然后使用raw_2而不是raw继续执行其余代码,或者按照@Kamehameha的话做谢谢!有没有办法让用户可以搜索“e”或“e”并得到相同的结果?(请参阅我上面的编辑…)
prompt = raw_input("Enter stuff: ") 
prompt = raw_input("Enter stuff: ") 
prompt = prompt.lower()