2014-02-22 109 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