2024-09-29 23:23:54 发布
网友
我正在学习Python。我有下面的代码要求用户输入一些细节。但是当我调用这个函数时,它不是增加index,而是改变现有记录
index
我能在这里得到一些帮助吗
menuList = {} def updateMenu(): item = input('Item Name: ') price = int(input("Enter Price: ")) key = 1 menuList[key] = {'item':item,'price':price} return menuList
每次调用updateMenu(),key都设置为1
updateMenu()
key
您需要将其更改为:
key+=1
每次调用updateMenu函数时,都使用相同的键1并覆盖以前的数据!所以你的menuList总是有一个键1
updateMenu
1
menuList
必须将key定义为全局变量,并在每次调用函数时增加它
此外,您还可以为dictionary使用其他一些键,例如,如果您认为它是唯一的,您可以使用item
item
此外,如果您不打算在menuList字典中使用这些整数键,我建议您使用list并将其附加到它
您正在对key=1进行硬编码,因此用户输入将始终引用与键1关联的值。 menuList也是由第一行代码定义的全局变量。使用相同的名称命名局部变量有点让人困惑。最好执行以下操作:
key=1
menuList = {} def updateMenu(): global menuList key = len(menuList.keys()) + 1 # assumes no keys are ever deleted item = input('Item Name: ') price = int(input("Enter Price: ")) menuList[key] = {'item':item,'price':price}
现在,当您调用updateMenu时,不需要将其设置为等于menuList
updateMenu() # answer the prompts # menuList will get updated
每次调用
updateMenu()
,key
都设置为1您需要将其更改为:
每次调用
updateMenu
函数时,都使用相同的键1
并覆盖以前的数据!所以你的menuList
总是有一个键1
必须将
key
定义为全局变量,并在每次调用函数时增加它此外,您还可以为dictionary使用其他一些键,例如,如果您认为它是唯一的,您可以使用
item
此外,如果您不打算在
menuList
字典中使用这些整数键,我建议您使用list并将其附加到它您正在对
key=1
进行硬编码,因此用户输入将始终引用与键1关联的值。menuList
也是由第一行代码定义的全局变量。使用相同的名称命名局部变量有点让人困惑。最好执行以下操作:现在,当您调用
updateMenu
时,不需要将其设置为等于menuList相关问题 更多 >
编程相关推荐