Python:将用户输入存储在列表中直到退出
Python: store userinput in list until quit
这是我当前的代码:
account_number = [" "]
uinput = int(input("Type some Bank account numbers. Type "quit" to stop: "))
while uinput != "quit":
account_number.append(uinput)
else:
print(Kontonummern, frozenset)
我想在我的列表“account_number”中存储“uinput”,直到用户输入“quit”。之后列表应该变成一个 frozenset 并打印出来。
目前我只能输入 1 个帐号,然后程序崩溃了。
试试这个:
account_number = [" "]
uinput = input("Type some Bank account numbers. Type quit to stop: ")
while uinput != "quit":
account_number.append(int(uinput))
uinput = input("Type some Bank account numbers. Type quit to stop: ")
else:
print(Kontonummern, frozenset(account_number))
问题是您从未更新过您的 uinput。您的输入可以是“退出”,但您将其转换为 int,这也会导致问题。
您永远不会在循环中更改 uinput
,因此一旦您的程序进入循环,它就永远不会离开(好吧,直到 Python 内存不足)。
最简单的方法是重构循环,使 input
调用在其中。单独的 if
语句用于测试输入和跳出循环。
account_number = []
while True:
uinput = int(input("Type some Bank account numbers. Type "quit" to stop: "))
if uinput == "quit":
break
account_number.append(uinput)
account_number = frozenset(account_number)
print(account_number)
您还可以使用两个 input()
语句,如 Jhanzaib 所示。这个策略(我学会了称之为“priming read”)但是难点在于,如果你需要改变它,你将需要在两个地方改变提示。当然,你可以利用它提供两种不同的提示(“输入第一个帐号”,“输入另一个帐号”)。
这不起作用,因为您没有在循环中调用任何更多输入。这意味着在第一次输入后你会调用一个无限循环。
另外,用“quit”终止也不起作用,因为您正试图将您的 uinput 加载到一个整数中。这意味着一旦用户输入“quit”,就会发生错误,因为这个字符串无法转换为整数值。
如果您只想使用字符串,现在可以这样工作:
account_number = [" "]
uinput = input("Type some Bank account numbers. Type quit to stop: ")
while uinput != "quit":
account_number.append(uinput)
uinput = input("Type some Bank account numbers. Type quit to stop: ")
else:
print(account_number, frozenset)
这是我当前的代码:
account_number = [" "]
uinput = int(input("Type some Bank account numbers. Type "quit" to stop: "))
while uinput != "quit":
account_number.append(uinput)
else:
print(Kontonummern, frozenset)
我想在我的列表“account_number”中存储“uinput”,直到用户输入“quit”。之后列表应该变成一个 frozenset 并打印出来。
目前我只能输入 1 个帐号,然后程序崩溃了。
试试这个:
account_number = [" "]
uinput = input("Type some Bank account numbers. Type quit to stop: ")
while uinput != "quit":
account_number.append(int(uinput))
uinput = input("Type some Bank account numbers. Type quit to stop: ")
else:
print(Kontonummern, frozenset(account_number))
问题是您从未更新过您的 uinput。您的输入可以是“退出”,但您将其转换为 int,这也会导致问题。
您永远不会在循环中更改 uinput
,因此一旦您的程序进入循环,它就永远不会离开(好吧,直到 Python 内存不足)。
最简单的方法是重构循环,使 input
调用在其中。单独的 if
语句用于测试输入和跳出循环。
account_number = []
while True:
uinput = int(input("Type some Bank account numbers. Type "quit" to stop: "))
if uinput == "quit":
break
account_number.append(uinput)
account_number = frozenset(account_number)
print(account_number)
您还可以使用两个 input()
语句,如 Jhanzaib 所示。这个策略(我学会了称之为“priming read”)但是难点在于,如果你需要改变它,你将需要在两个地方改变提示。当然,你可以利用它提供两种不同的提示(“输入第一个帐号”,“输入另一个帐号”)。
这不起作用,因为您没有在循环中调用任何更多输入。这意味着在第一次输入后你会调用一个无限循环。
另外,用“quit”终止也不起作用,因为您正试图将您的 uinput 加载到一个整数中。这意味着一旦用户输入“quit”,就会发生错误,因为这个字符串无法转换为整数值。
如果您只想使用字符串,现在可以这样工作:
account_number = [" "]
uinput = input("Type some Bank account numbers. Type quit to stop: ")
while uinput != "quit":
account_number.append(uinput)
uinput = input("Type some Bank account numbers. Type quit to stop: ")
else:
print(account_number, frozenset)