首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Think Python中的has_no_e()练习

Think Python中的has_no_e()练习
EN

Stack Overflow用户
提问于 2013-06-04 20:30:21
回答 2查看 592关注 0票数 1

这是来自Think Python的。我试着检查文件的每一行(每行一个单词),只打印出不包含字母e的每个单词。我花了大约4个小时通过我的函数尝试不同的方法来过滤文件,但我放弃了。它似乎只过滤掉它在一个单词中找到的第一个e:如果一个单词有两个e,那么无论如何它都会打印出来。

代码语言:javascript
运行
复制
def has_no_e():
    file_name = raw_input('Enter the full path and file name: ') 
    fin = open(file_name)   
    line = fin.readline()

    for line in fin:
        word = line.strip()
        print word
        for letter in word:
            if letter == 'e':
                continue
            print word




    has_no_e()

我的代码是缩进的btw,我想当我按ctrl +v的时候会搞砸。

如果有什么方法可以缩短我的代码,请让我知道:]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-04 20:36:11

代码语言:javascript
运行
复制
with open(filename) as f:
    for line in f:
        if not 'e' in line: print line.strip()

一些评论:

  • 在处理文件时使用,虽然它是Python语言中较新的结构,但它可以帮助您管理文件(例如,当不需要时再次关闭它anymore)
  • word = line.strip()使您的代码可读性不是很好。使用line = line.strip() (我假设您只能使用lineword,不能同时使用两者)

那么为什么你的代码不能工作呢?

代码语言:javascript
运行
复制
for letter in word:
    if letter == 'e':
        continue
    print word

在这里,您将单词拆分为字母,然后检查字母是否等于e。如果不是这样,则打印单词,否则跳到下一个字母。因此,您可以打印与“e”不同的字母数量的单词。

解决这个问题的一种方法是定义一个布尔值,它会告诉您单词中是否有e:

代码语言:javascript
运行
复制
hasE = False
for letter in word:
    if letter == 'e':
        hasE = True
        break
if not hasE: print word

请注意,Python也有一种奇特的方法来解决这样的问题:

代码语言:javascript
运行
复制
for letter in word:
    if letter == 'e': break
else:
    print word
票数 5
EN

Stack Overflow用户

发布于 2014-08-25 03:35:45

看起来pfnuesel在写下代码的时候,仔细检查了代码不能工作的主要原因:

“在这里,您将单词拆分成字母,然后检查字母是否等于e。如果不是这样,则打印单词,否则跳到下一个字母。因此,您打印单词的次数与字母‘e’不同的次数一样多。”

下面是我在Think Python中解决练习9.2的方法:

代码语言:javascript
运行
复制
def has_no_e(word):
    return "e" not in word

fin = open('words.txt')

for line in fin:
    word = line.strip()
    if has_no_e(word):
        print word
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16917904

复制
相关文章

相似问题

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