如何保持以前的输入

时间:2014-08-10 02:34:37

标签: python python-3.x

我输入一个新输入后如何保留以前的输入?我想制作一个列表(不是内置函数)来保存先前的输入和最近的输入......

我的问题是当我在前一个输入之后输入一个输入时 - 删除前一个输入并用最近的输入替换它

这是我当前代码的较小版本:

enter = 1
count = 1
ctr = 0
max_input = 3


while ctr < max_input:

    for enter in range(1, max_input+1):
        if enter <= ctr:
            print("input " + str(enter) + ": " + str(user_input))
        else:
            print("input " + str(enter) + ": ___________" )

    user_input = int(input("enter number " + str(count) + ": "))

    enter += 1
    ctr += 1

此输出:

input 1: ___________
input 2: ___________
input 3: ___________
enter number 1: 1
input 1: 1
input 2: ___________
input 3: ___________
enter number 2: 2
input 1: 2
input 2: 2
input 3: ___________
enter number 3: 3

预期产出:

#the list before entering first number
input 1: ___________
input 2: ___________
input 3: ___________
enter number 1: 1

#the list after entering first number
input 1: 1
input 2: ___________
input 3: ___________
enter number 2: 2

#the list after entering second number
input 1: 1
input 2: 2
input 3: ___________
enter number 3: 3

#the list after entering last number
input 1: 1
input 2: 2
input 3: 3

1 个答案:

答案 0 :(得分:1)

您应该将数据存储在列表中,而不是连续打印和覆盖user_input,它会在重新分配时删除旧内容。这使您可以在同一数据结构中存储多个值。以下是使用列表的代码示例:

# enter = 1    This line doesn't serve any purpose.
count = 1
ctr = 0
max_input = 3
input_list = []


while ctr < max_input:

    for enter in range(0, max_input):
        if enter < ctr:
            print("input " + str(enter+1) + ": " + str(input_list[enter]))
        else:
            print("input " + str(enter+1) + ": ___________" )

    user_input = int(input("enter number " + str(count) + ": "))
    input_list.append(user_input)

    # enter += 1      This line doesn't serve any purpose.
    ctr += 1

我们仍然将输入保存到user_input,但随后将其添加到input_list,后者会存储越来越多的值。您可以使用input_list[0]访问第一个元素,使用input_list[1]访问下一个元素,依此类推。请注意,列表的第一个元素是索引0,而不是1