取消下一次输入提示



如何使其在输入为"!"的情况下,它不等待valueInput并立即打印字典?

itemInput = input()
valueInput = int(input())
while itemInput != '!':
if itemInput in groceryDict.keys():
groceryDict[itemInput] += valueInput
else:
groceryDict[itemInput] = valueInput
itemInput = input()
valueInput = int(input())
else:
print(groceryDict)

例如,如果有人输入完他们的列表,他们会输入"!",但是dict不会打印,因为它正在等待再次请求valueInput,并且用户必须在dict打印之前输入一个值。那么,我应该把valueInput和itemInput提示符正确地放在代码中的哪里呢?

您应该只在控制项目名称后输入一个值:

itemInput = input()
while itemInput != '!':
valueInput = int(input())
if itemInput in groceryDict.keys():
groceryDict[itemInput] += valueInput
else:
groceryDict[itemInput] = valueInput
itemInput = input()
print(groceryDict)

或者只有一个项目输入:

itemInput = input()
while True:
itemInput = input().strip()   # ignore leading or ending blank characters
if itemInput == '!': break
valueInput = int(input())
if itemInput in groceryDict.keys():
groceryDict[itemInput] += valueInput
else:
groceryDict[itemInput] = valueInput
print(groceryDict)

只需中断

itemInput = input() 
valueInput = int(input())
while True:
if itemInput in groceryDict.keys():
groceryDict[itemInput] += valueInput
else:
groceryDict[itemInput] = valueInput
itemInput = input()
if itemInput == '!':
print(groceryDict)
break
valueInput = int(input())

您可以尝试以下操作:

groceryDict = {}
while True:
itemInput = input("Enter Item:")
if itemInput == "!":
break
valueInput = int(input("Enter Value for Item:"))
if itemInput in groceryDict.keys():
groceryDict[itemInput] += valueInput
else:
groceryDict[itemInput] = valueInput
print(groceryDict)

循环将继续,直到if语句变为True,而break导致结束它。接下来,将if语句直接放在该项的输入后面。这样,在循环结束之前,用户就不必再输入值了。

对用户要聪明,告诉他/她/它要输入什么。;-(

break可能会有所帮助:

if itemInput == '!':
print(groceryDict) 
break

最新更新