Python 3.x 如何在向字典添加新值时消除提示?
这个问题措辞古怪。很难用几句话来形容它。但我们要做的是: 我编写了这个程序,提示用户输入他们的名字和一些与他们相关的数据。如果您再次输入相同的名称,程序将询问您是否要更新。在这种情况下,您可以键入Python 3.x 如何在向字典添加新值时消除提示?,python-3.x,dictionary,overwrite,Python 3.x,Dictionary,Overwrite,这个问题措辞古怪。很难用几句话来形容它。但我们要做的是: 我编写了这个程序,提示用户输入他们的名字和一些与他们相关的数据。如果您再次输入相同的名称,程序将询问您是否要更新。在这种情况下,您可以键入y(是),然后输入要存储的新数据。当您按两次enter或return时,程序将列出键及其值 代码如下: def thing(): store = {} while True: name = input('Perp: ') if not name:
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: ')
现在,我要做的是消除我在代码中给出的整个提示如果输入(name+'有'+存储[name]+'.更新?')!='y':
。我只想在第二次输入名称时,它会显示Item:
并输入项目,当我按两次enter
并列出键和值时,它会显示更新的对
我只是想消除询问用户是否要更新的提示。如果他们在第二次输入名称,我们将假定这是他们的意图
在我尝试过的地方,我已经尝试过多次处理这行代码如果输入('Item:')!='代码>,但失败了。还有一些其他的代码变体。然后我意识到我需要在某种程度上消除这个输入。当我删除那一行时,代码显然没有正常工作。我知道这是一个很小的修正,但我已经盯着它看了几个小时,我无法得到它
输出如下所示:
Perp:Batman
项目:巴塔朗
Perp:Superman
项目:热视野
Perp:Syndrome
项目:愚蠢
Perp:Batman
项目:氪石
Perp:
蝙蝠侠有氪石
超人有热视力
综合症有愚蠢
PS,如果我的超级英雄例子让你不高兴,我很抱歉
这就是我的代码
如果商店名称为:
则跳过,检查并在名称不为空时再次索要物品:
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: ')
所以删除if输入(name+'has'+store[name]+'.Update?')!='y':继续
未执行您想要的操作?正确。如果我最多删除并包括continue
,它将永远不会提示我输入该项目。现在,如果我最多删除但不包括continue
,那么只需if input(name+'有'+store[name]+'.Update?')!='y':
,它将返回蝙蝠侠batarang
和kryptonite
的两个项目,但它应该只返回最后一个项目。此外,当我删除该行时,再次不包括continue
,我将缩进最后一行store[name]=input('item:')
直接位于continue
下。删除条件和continue
的写入方式将导致语法错误
,因为如果存储中的名称:
为空,则块,如果您留下继续
它将成为条件中唯一的东西if name in store:
,因此如果名称已经存在,它将跳过询问新项目,某些内容与您描述的内容和您发布的代码不匹配,你确定这是正确的代码吗?在continue下面直接放一些东西是没有意义的,因为它永远不会到达。