转到上一个用户输入是用户输入指定的字符串

时间:2013-11-16 20:56:56

标签: python command-line-interface

我有一个CLI,要求用户使用raw_input输入几个参数。有没有办法回到以前的用户输入而不必重复整个程序?我不需要代码来重新启动整个程序,但是可以根据用户的请求检查以前的用户输入。

fruit = ["apples","bananas","pears"]

inputs = []

for count,a in zip(range(3),fruit):
    query = raw_input("Do you like "+a+"?")
    inputs.append(query)

    if [any(n)=='back' for n in inputs[1::]]:
         a = fruit[count-1]

这会询问用户是否喜欢苹果,香蕉和梨。如果他们输入“后退”,则应在CL上打印先前的用户输入。

所以,

>>> Do you like apples? y
>>> Do you like bananas?back
>>> Do you like apples? n
>>> Do you like bananas? y

我的预期结果是,如果用户在"back"中键入任何输入,则会重复先前的输入,并且应更新inputs中的相应元素。返回的选项应仅在用户输入第一个输入后发生。

如果用户输入fruits,我的代码会将前一个元素存储在back中,但我不知道如何使用它来更新raw_input

1 个答案:

答案 0 :(得分:1)

这会有用......

fruit = ['apples', 'bananas', 'pears']
inputs = []

index = 0
while index < len(fruit):
    answer = raw_input('Do you like %s? ' % fruit[index])
    if index > 0 and answer == 'back':
        inputs.pop()
        index -= 1
    else:
        inputs.append(answer)
        index += 1

print inputs