首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本分析。Python初学者

文本分析。Python初学者
EN

Stack Overflow用户
提问于 2016-11-12 21:30:06
回答 2查看 81关注 0票数 0

因此,我刚刚开始了一段漫长的python学习之路,并遇到了以下情况。我必须创建一个程序来计算文本中的字符。文本是UTF-8格式的,我必须使用.coding=‘utf-8’,但是python说'keyword不能是一个表达式‘,并指出'(’在‘fn.coding=’utf-8‘之前。我搞不懂这件事。

代码语言:javascript
复制
def count_char(text, char):
count=0
for c in text:
    if c==char:
        count+=1
    return count

fn=input('Enter a filename:')
with open (fn.encoding='utf-8') as f:
    text=f.read()

print(count_char(text,'a'))
EN

回答 2

Stack Overflow用户

发布于 2017-10-20 22:58:25

我通常不会对文件进行编码/解码,但我确实会处理服务器的编码,因为我知道我会这么做。而不是:

代码语言:javascript
复制
with open (fn.encoding='utf_8') as f:

我会这样做:

代码语言:javascript
复制
with open (fn.decode('utf_7') as f:
# your code here.
票数 0
EN

Stack Overflow用户

发布于 2021-02-07 03:20:13

第一个回答在这里,所以请仁慈。如果你想知道一个txt文件中有多少个"a“,试着像这样修改你的代码:

代码语言:javascript
复制
def count_char(text, char):
    count=0
    for c in text:
        if c==char:
            count+=1
    return count

fn=input('Enter a filename:')
with open (fn,encoding='utf-8') as f:
    text=f.read()

print(count_char(text,'a'))

就像有人说的,"return“应该缩进在"for”下面,正确的编码方式是(fn,"r"," encoding =utf-8")。这只是一个小的缩进错误,现在它可以工作了!如果您在if下面缩进return,您将告诉代码在退出" If“语句后给出的与"char”相同的字母计数,基本上是在第一次对条件执行检查后中断代码。这就像是告诉他只检查你文本中的第一个字母。尝试通过将"char“替换为文本中的第一个字符来进行测试,您将看到输出将是"1”。请注意,在这种方式下,您只能检查小写字母,如果您想同时检查小写字母和大写字母,则必须以不同的方式进行表达

代码语言:javascript
复制
def count_char(text, char1, char2):
    count=0
    for c in text:
        if c==char1 or c==char2:
            count+=1
    return count

fn=input('Enter a filename:')
with open (fn, encoding='utf-8') as f:
    text=f.read()

print(count_char(text,'a','A'))

我也是python的初学者,我不太确定是否在这里使用"or“,但似乎它是有效的!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40563355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档