2012-06-15 95 views
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) 

我結束了這一點,它工作得很好(我的變量/函數名實際上是法國在這個項目因爲這是對家庭作業在法國UNI)

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) 

唯一討厭的一點就是布爾用英語來了,很好哦!

+0

編輯,以改善代碼格式:) – Ryan

+0

哦,我剛剛做到了!它看起來很糟糕,woops。 –

+0

lol不用擔心只是試圖幫助:),你應該把語言放在那裏...看起來像python – Ryan

回答

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。

+0

輸入似乎做的工作就好了,謝謝你,雖然 –

0

讓我們一起來看看:

  • 你現在返回一個布爾值,但需要有一個列表。所以你應該有result = []在你的函數開始的某個地方,最後return result
  • 剩下要做的就是將TrueFalse附加到該列表中,對於您正在考慮的每個單詞。這不應該太難,因爲你已經計算出一個單詞是否在文件中。
+0

謝謝,那只是做了伎倆 –

相關問題