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
我如何才能使返回主要打印整个句子,而不仅仅是一个单词?
你必须以某种方式构建整个句子。例如,您可以建立一个单词列表:
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)
您需要将值附加到列表并从循环中删除 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
您的 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() 生成最终连接的字符串。