我正在尝试接收用户输入,然后将其放入列表中。我有一个工作版本,但是,我觉得它似乎是多余的(第一个块似乎是多余的,但如果我拿走它,它不起作用)。这有什么办法可以改进吗? 感谢
def pastChoice():
choice = raw_input("> ")
prevMove = []
prevMove.append(choice)
for i in prevMove:
choice = raw_input("> ")
prevMove.append(choice)
print prevMove
pastChoice()
我正在制作游戏,我想向用户展示他们已经做出的选择。
实施例。如果您想查看以前的选择,请输入“历史记录”
[ '一个', '一个', 'C', 'B']
答案 0 :(得分:1)
def main():
prevMove = []
choice = ''
def getHistory():
print prevMove
while True:
choice = raw_input("> ")
if choice == '':
break
prevMove.append(choice)
# do whatever you want with the input here
# a call to history
getHistory()
if __name__ == "__main__":
main()
编辑:
由于问题编辑,代码现在将记录事件的历史记录并具有获取它们的功能。
答案 1 :(得分:1)
我不确定您对此代码的意图,但这大致相同:
def pastChoice():
prevMove = []
while True:
choice = raw_input("> ")
prevMove.append(choice)
print prevMove
pastChoice()
块:
choice = raw_input("> ")
prevMove = []
prevMove.append(choice)
询问用户输入并将其附加到prevMove,因此在循环开始时,条件i in prevMove
将i
评估为prevMove
中的第一个元素,然后因为在第二个块中你'将新元素附加到prevMove
,迭代继续覆盖新添加的元素,循环永远不会结束。
如果删除第一个块,但保留for
循环,则它将无效,因为prevMove
内没有元素,因此无需迭代。