0

我已经定义了一个函数来检查一个或多个单词是否在一个列表中,它工作正常,但现在我试图弄清楚我应该如何更改我的代码,所以我得到一个布尔值列表,具体取决于是否单词在列表中。这是我一直在摆弄的两个独立的功能:

这是没有布尔值的那个,它可以完美地打印单词以及它们是否出现在文本中,但是该函数不输出布尔值(它只是打印,我知道这有点乱)

def isword(file):
    wordlist=input("Which word(s) would you like to check for in the text? ")
    wordlist=wordlist()
    file=chopup(file) ##This is another function of mine that splits a string(file) into   a list
    for n in range(0,len(wordlist)):
        word=wordlist[n]
        n+=1
        word=word.lower() ##so case doesn't matter when the person enters the word(s)
        if word in file:
            print(word, ":TRUE")
            for i in range(0,len(file)):
                if file[i]==word:
                    print(i)
        else:
            print(word," :FALSE")

这个输出一个布尔值,但仅用于一个单词。我想知道如何组合它们,以便我得到一个布尔值列表作为输出,不打印

def isword(file):
    a=True
    wordlist=input("Which word(s) would you like to check for in the text? ")
    wordlist=wordlist()
    file=chopup(file) ##This is another function of mine that splits a string(file) into a list
    for n in range(0,len(wordlist)):
        word=wordlist[n]
        n+=1
        word=word.lower()
        if word in file:
            a=a
        else:
            a=False
    return(a)

我最终得到了这个,它工作得很好(我的变量/函数名称在项目中实际上是法语,因为这是法国大学的家庭作业)

def presmot(fichier):
    result=[]
    listemots=input("Entrez le/les mots dont vous voulez vérifier la présence : ")
    listemots=listemots.split()
    fichier=decoupage(fichier)
    for n in range(0,len(listemots)):
        mot=listemots[n]
        mot=mot.lower()
        def testemot(mot):
            a=True
            if mot in fichier:
                a=a
            else:
                a=False
            return(a)
    result=[(mot,testemot(mot)) for mot in listemots] 
    return(result)

唯一烦人的是布尔值是英文的,哦,好吧!

4

2 回答 2

0

获取输入存在错误。使用 raw_input 而不是输入。

def isword(file):
    wordlist= raw_input("Which word(s) would you like to check for in the text? ").split()
    file=chopup(file)
    return [word.lower() in file for word in wordlist]

仅供参考,你不需要n+=1。for 循环自动递增 n。

于 2012-06-15T09:40:59.707 回答
0

我们来看一下:

  • 您现在返回一个布尔值,但它需要是一个列表。所以你应该result = []在函数的开头和return result结尾都有某个地方。
  • 剩下要做的就是为您正在考虑的每个单词附加True或添加到该列表中。False这应该不会太难,因为您已经在计算文件中是否有单词。
于 2012-06-15T09:41:17.087 回答