-4
for word in sentence.split():

    if word[0] in VOWELS:
        pig_latin = word + "ay"

    else:
        pig_latin = word[1:] + word[0] + "ay"

    return pig_latin

我如何才能使返回主要打印整个句子,而不仅仅是一个单词?

4

3 回答 3

2

你必须以某种方式构建整个句子。例如,您可以建立一个单词列表:

pig_words = []

for word in sentence.split():
    if word[0] in VOWELS:
        pig_latin = word + "ay"
    else:
        pig_latin = word[1:] + word[0] + "ay"
    pig_words.append(pig_latin)

return pig_words

如果你想把它变回一个句子,它的反义词split就是join,所以把最后一行改成:

return ' '.join(pig_words)
于 2013-11-04T23:00:28.987 回答
0

您需要将值附加到列表并从循环中删除 return 语句,以便在 for 循环完成迭代后返回列表。

words = []
for word in sentence.split():
    if word[0] in VOWELS:
        pig_latin = word + "ay"
    else:
        pig_latin = word[1:] + word[0] + "ay"

    words.append(pig_latin)

return words
于 2013-11-04T23:02:44.407 回答
0

您的 return 语句在第一次通过 for 循环时执行。即使您取消缩进返回语句以在结束时运行,您也只会在 pig_latin 变量中拥有最后一个翻译的单词。

要翻译整个句子,您应该只在整个 for 循环运行完成后返回,保存累积的翻译单词列表。

entensesay = []
for word in sentence.split():
    if word[0] in VOWELS:
        entensesay.append(word + "ay")
    else:
        entensesay.append(word[1:] + word[0] + "ay")
return ' '.join(entensesay)

在 Python 中避免在循环中进行字符串连接也是一个好习惯。列表追加方法效率更高,然后使用 ' '.join() 生成最终连接的字符串。

于 2013-11-04T23:15:48.647 回答