如何保留之前的输入

1 投票
1 回答
5492 浏览
提问于 2025-04-18 16:42

我该怎么做才能在输入新内容后保留之前的输入呢?我想创建一个列表(不是内置的那种),可以保存之前的输入和最新的输入……

我的问题是,当我在输入一个新内容后,之前的输入就会被删除,变成新的输入。

这是我当前代码的简化版本:

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 个回答

2

与其不断打印和覆盖 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

撰写回答