【发布时间】:2022-10-04 20:18:19
【问题描述】:
我对编码比较陌生,并且无法弄清楚如何将句子递归地转换为 Pig Latin。我有两个问题。首先是 pig_latin 函数中的布尔值似乎没有在 if 语句中正确更新。如果我将值设置为true,那么它只会添加'way',如果我将它设置为false,它只会添加'ay',它不会根据单词切换。第二个问题是我不知道如何将代码应用于多个单词。我试图将用户生成的句子拆分为子字符串列表,但我不知道如何将我的代码应用于这些子字符串。我尝试用单词替换句子,但收到错误消息“TypeError: can only concatenate list (not "str") to list。”
注意:我的教授说我们不能在我们的函数中使用循环来将句子翻译成 Pig Latin,如果这对答案有任何影响的话。
sentence = str(input('Input Sentence: '))
words: list = sentence.split(' ')
vowels = 'aeiou'
def pig_latin(sentence):
vowelStart = True
if sentence[0] not in vowels:
vowelStart = False
return pig_latin(sentence[1:] + sentence[:1]) and vowelStart
elif sentence[0] in vowels and not vowelStart:
print(sentence + 'ay')
elif sentence[0] in vowels and vowelStart:
print(sentence + 'way')
pig_latin(sentence)
【问题讨论】:
-
请通过一些示例来更新您的问题,说明您如何调用函数以及您期望的输出是什么。
标签: python python-3.x recursion