我相信我得到的输出是某个地方草率代码的产物,但我似乎无法得到它。我希望我的功能是在列表中列出元素的新列表,在这些元素中使用这些元素'猪 - 拉丁语翻译。我已经使该函数工作,但它使所有新的列表元素只有列表中第一个元素的Pig-Latin转换传递给函数,即使我使用索引进行迭代通过传递列表的元素。
def pigLatin(targetlist):
newlist = ()
listnewlist = list(newlist)
index = 0 # gets incremented
firstletter = targetlist[index][0]
word = targetlist[index][1:]
print('Words made into Pig Latin: ')
while index < len(targetlist):
listnewlist.append(word + firstletter + 'ay')
index += 1
print(listnewlist)
,在用户输入"how now brown cow"
后,显示:
['owhay', 'owhay', 'owhay', 'owhay']
答案 0 :(得分:1)
word
和firstletter
都是在循环之外计算的,并保留targetlist
的第一个单词的值。
恕我直言,你应该写:
def pigLatin(targetlist):
newlist = ()
listnewlist = list(newlist)
index = 0 # gets incremented
print('Words made into Pig Latin: ')
while index < len(targetlist):
firstletter = targetlist[index][0]
word = targetlist[index][1:]
listnewlist.append(word + firstletter + 'ay')
index += 1
print(listnewlist)