2011-11-30 45 views
-7

我正在爲我的編程課做一個項目,下面是我正在努力的五件事。謝謝你的幫助!如何使用排列從輸入中找到所有可能的單詞?

  1. 有效的話名單將在words.txt
  2. 要求輸入只接受2-8字母
  3. 例的組合來提供。輸入將是「馬球」
  4. 查找此輸入的所有可能的有效字從內words.txt
  5. 可能的結果,「便便」,「游泳池」,「環」,「馬球」

    import random 
    import itertools 
    
    file_name='words.txt' 
    DEBUG=True 
    
    def load_words(): 
        try: 
         f=open(file_name,'r') 
         str1=f.read() 
         f.close() 
        except: 
         print('Problem opening the file',file_name) 
        list1=[] 
        list1=str1.split() 
        if DEBUG: 
         length=len(list1) 
         print('Number of words is',length) 
         print(list1[0],list1[length//2],list1[-1]) 
         for i in range(10): 
          print(list1[random.randint(1,length)]) 
        return(list1) 
    
    def is_valid(str1,list1): 
        valid=False 
        count=0 
        if str1 in list1: 
         valid=True 
        return valid 
    
    def generate(letters): 
        print(len(letters)) 
        count=1 
        answers=[] 
        for length in range(2,len(letters)+1): 
         for x in itertools.permutations(letters,length): 
          word='' 
          for let in x: 
           word+=let 
          print(word) 
          if is_valid(word): 
           answers.append(word) 
          count+=1 
         print(count,x) 
         return(answers) 
    
    def main(): 
        words=load_words() 
        generate('abcde') 
        guess=input('Check a word') 
        if is_valid(guess.upper(),words): 
         print(guess,'is a real word') 
        else: 
         print(guess,'is not a real word') 
    
    main() 
    
+4

什麼是實際問題你想幫忙回答?只需發佈您的項目和目標並不是一個具體問題。 – cdeszaq

+4

請加個問題 –

+0

現在我得到一個錯誤「TypeError:列表索引必須是整數,而不是模塊」我不知道這是發生在哪裏。 –

回答

1

就錯誤而言 print(list1 [random] .randint(1,length))應改爲 print(list1 [random.randint(1,length)])

+0

謝謝,那讓我失去了那個錯誤,現在我遇到了「is_valid()只需要2個參數(1給出)」我想這是在我的def generate()下,但是我不知道該放入什麼內部爭論除字外。 –

+1

歡迎您:))...你把函數is_valid所期望的相應列表.. – Graddy

相關問題