如何将来自同一变量的两个不同输入存储起来?

3
    while n == 1:
        w = input("Input the product code: ")   

问题在于当输入w的新代码时,w会被覆盖。例如,如果w = 24,然后w = 54,如果您打印w,它只会打印54,因为这是最新的输入。如何使其打印出w的所有输入?


2
改用列表 w,然后只需将每个条目附加到其中? - idjaw
你能不能在输入时不打印它?另外,除非是集合、类或某种容器,否则你唯一可以在一个变量中存储两个不同的东西的方法是将值连接在一起并将其存储到字符串中,但这会变得混乱且开销太大。 - MooingRawr
3个回答

1
inputs = []
for i in range(expected_number_of_inputs):
    inputs.append(input('Product Code: '))
for i in inputs:
    print(i)

1

使用容器类型代替单个变量。在这种情况下,list() 似乎是合适的:

inputs = [] # use a list to add each input value to
while n == 1:
    inputs.append(input("Input the product code: ")) # each time the user inputs a string, added it to the inputs list
for i in inputs: # for each item in the inputs list
    print(i) # print the item

注意:上述代码将无法编译。您需要为变量n填充值。


哦,原来是这样工作的。 - Anya
@Anya 是的。但请记住,列表并不是您唯一的容器类型选择。我建议阅读有关Python容器类型的相关内容(https://dev59.com/Smgu5IYBdhLWcg3wGjdF)。 - Christian Dean

0
你可以用两种不同的方法来实现这个,但是你现在尝试的方式是行不通的。你不能让一个不是列表的变量保存两个值。
解决方案1:使用两个变量。
w1 = input("value1")
w2 = input("value2")
print(w1)
print(w2)

解决方案2:使用列表

w = []
w.append(input("value1"))
w.append(input("value2"))
print(w[0])
print(w[1])

你的解决方案2会导致“IndexError”。请使用“w.append(input())”。 - juanpa.arrivillaga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接