将用户输入lis

2024-03-29 15:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试接收用户输入,然后将其放入列表中。我有一个可以工作的版本,但是,我觉得它是多余的(第一个块似乎是多余的,但是如果我去掉它,它就不起作用了)。有什么办法可以改进吗? 谢谢

def pastChoice():
     choice = raw_input("> ")
     prevMove = []
     prevMove.append(choice)

for i in prevMove:
     choice = raw_input("> ")
     prevMove.append(choice)
     print prevMove

pastChoice()

我正在做一个游戏,我想告诉用户他们已经做了什么选择。在

例如,如果要查看以前的选择,请键入“history”

['a'、'a'、'c'、'b']


Tags: 用户in版本游戏列表forinputraw
2条回答

你能这样做吗?我不知道你这么做的真正原因,但是接受用户输入并添加到列表中就可以了。在

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()

编辑:

由于问题编辑,代码现在将记录事件的历史,并具有获取它们的函数。在

我不确定您对这段代码的意图,但这大致相当:

def pastChoice():
    prevMove = []

    while True:
        choice = raw_input("> ")
        prevMove.append(choice)
        print prevMove
pastChoice()

街区:

^{pr2}$

向用户请求输入并将其附加到prevMove,因此在循环开始时,条件i in prevMove计算i到{}中的第一个元素,然后因为在第二个块中,您要向prevMove添加新元素,所以迭代会在这些新添加的元素上继续,循环永远不会结束。在

如果删除第一个块,但保留for循环,它将无法工作,因为prevMove中没有元素,因此没有可迭代的内容。在

相关问题 更多 >