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 循环时执行。即使您取消缩进 return 语句以在结论处运行,您也将只有 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() 生成最终的串联字符串。