2014-02-22 131 views
0

我無法打印正確的輸出。這裏是我的輸出:字符串錯誤輸入

ere-Hay 
are-ay 
he-tay 
ords-way 

這是我期待得到:

ere-Hay 
are-ay 
e-thay 
ords-way 

我的代碼,什麼是不正確的toPigLatin:

isVowels = ('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U') 

def toPigLatin(word): 
    letter1 = word[0] 
    if letter1 in isVowels: 
     return word + "-ay" 
    else: 
     return (word[1:] + "-" + word[0] + "ay") 

def main(): 
    #filename = input("Enter filename: ") 
    filename = "some.txt" 

    for word in open(filename): 
     print(toPigLatin (word.strip())) 

main() 

這是我的一些。 txt:

Here 
are 
the 
words 

任何幫助將grea噸。謝謝。

+1

你爲什麼希望爲「的」來代替「他-TAY」電子大公「的輸出?你輸出的代碼對你寫的代碼 – praveen

+0

@praveen來說是正確的,因爲我應該把所有的非元音帶到單詞的最後,並加上「-ay」。如果單詞以元音開始,那麼只需在單詞的末尾添加「-ay」。 – user3341811

+0

不完全與代碼相關,但在拉丁字母中,您將第一個字母移動到單詞的結尾並向其添加'ay' 。那麼爲什麼你期待它在第三行上移動他的前兩個字母(th)? –

回答

0
isVowels = ('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U')___ 

def toPigLatin(word): 
    letter1 = word[0] 
    if letter1 in isVowels: 
     return word + "-ay"_ 
    else: 
     prefix = '' 
     for letter in word: 
      if letter in isVowels: 
       break 
      else: 
       prefix += letter 
     return (word[len(prefix):] + "-" + prefix + "ay")___ 

def main(): 
    #filename = input("Enter filename: ") 
    filename = "some.txt" 

    for word in open(filename): 
     print(toPigLatin (word.strip())) 

main() 

這將產生輸出:

ere-Hay 
are-ay 
e-thay 
ords-way 
+0

非常感謝。 – user3341811