问题措辞奇怪。用几句话来说很难说出来。但是我们走了:
我编写了这个程序,提示用户输入他们的名字和一些与之相关的数据。如果您再次输入相同的名称,程序将询问您是否要更新,在这种情况下,键入y
(是),您可以输入要存储的新数据。当您点击enter
或return
两次时,程序会列出密钥及其值。
以下是代码:
def thing():
store = {}
while True:
name = input('Perp: ')
if not name:
for k, v in store.items():
print('Perp' + k + ' has a ' + v)
break
if name in store:
if input(name + ' has ' + store[name] + '. Update? ') != 'y':
continue
store[name] = input('item: ')
现在,我想要做的是消除我在此代码中给出的整个提示
if input(name + ' has ' + store[name] + '. Update? ') != 'y':
。我只想在第二次输入名称时,它会显示Item:
并输入该项目,当我点击enter
两次并列出键和值时,它会显示给我更新的一对。
我只想消除询问用户是否要更新的提示。如果他们第二次输入名称,我们将假设这是意图。
在我尝试过的时候,我已经尝试过很多代码
if input('Item: ')!= ''
,但失败了。还有一堆代码的其他变种。然后我意识到我需要在某种程度上消除这个input
。当我删除该行时,显然代码不能正常工作。我知道这是一个很小的修复,但我已经盯着它看了好几个小时,我无法得到它。
输出如下:
Perp: Batman
Item: Batarang
Perp: Superman
Item: Heat Vision
Perp: Syndrome
Item: Stupidity
Perp: Batman
Item: Kryptonite
Perp:
Batman has Kryptonite
Superman has Heat Vision
Syndrome has Stupidity
PS,对不起,如果我的超级英雄例子让你心烦意乱。
这是我的代码。
答案 0 :(得分:1)
只需跳过if name in store:
检查,当名称不为空时,只需再次询问该项目:
def thing():
store = {}
while True:
name = input('Perp: ')
if not name:
for k, v in store.items():
print('Perp' + k + ' has a ' + v)
break
else:
store[name] = input('item: ')