问题措辞怪异。用几句话来说很难。但在这里我们去: 我写了这个程序,提示用户输入他们的名字和一些与他们相关的数据。如果您第二次输入相同的名称,程序会询问您是否要更新,在这种情况下,您输入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,对不起,如果我的超级英雄的例子让你心烦意乱。
这是我的代码。
所以......去掉'如果输入(名称+“有” +店[name] +'。Update?')!='y':continue'没有做你想做的事? –
正确。如果我删除并包括'continue',它永远不会提示我输入该项目。现在,如果我删除了但不包含'continue',那么简单地'如果输入(name +'有'+ store [name] +'。Update?')!='y':',它将返回两个项目蝙蝠侠'batarang'和'kryptonite'时它应该只返回最后一个。 – adhamncheese
另外,当我删除该行时,再次不包括'continue',我会将最后一行'store [name] = input('item:')'缩进直接放在'continue'下面。 – adhamncheese