Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在向字典添加新值时消除提示?_Python 3.x_Dictionary_Overwrite - Fatal编程技术网

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下面直接放一些东西是没有意义的,因为它永远不会到达。