현재 사용자가 적합하다고 생각하는 사전을 업데이트 할 수있는 인벤토리 시스템을 만들고 있습니다. 나는 그것이 내가 나를 위해 사전을 저장하는 것처럼 보였기 때문에 내가 피클을 사용할 것이라고 생각했다. 유일한 문제는 지금 내가 목록을 참조 할 때마다이며, 목록에 다른 항목을 추가하기 위해 돌아가서 목록에있는 항목을 지 웁니다.파이썬 내 피클 문제
import pickle
#creates a dictonary
Inventory = {}
product_add = ""
Key = "Key \n+ changes stock, \ni or I shows inventory"
print(Key)
def main():
choice = input("What do you want to do today? ")
if choice == "+":
Change()
else:
inv()
def Change():
product = input("What product do you want to add/change? ")
value = input("How much of it? ")
Inventory.update({product: value})#places into dictonary
pickle.dump(Inventory, open("save.p", "wb"))
continu = input("Would you like to enter any more products into inventory? y/n ")
if continu == "y" or continu == "Y":#allows them to either continue to update inventory or move on
Change()
else:
inv()
def inv():#prints inventory
print()
print()
print()
Inventory = pickle.load(open("save.p", "rb"))
for key,val in sorted(Inventory.items()):#prints the dictonary in a column alphabetized
print(key, "=>", val)
print()
print()
print()
print(Key)
Pass = input("What would you like to do? ")
if Pass == "+":#keeps the program going, and allows them to change the dictonary later
Change()
else:
main()
main()
기대하고있는 행동과 관찰하고있는 행동을 정확히 설명해 주시겠습니까? (나는 그걸 가지고 조금 놀았고 내가 테스트 한 것에 대해서는 잘 작동했다) –
사전에 고유 키를 추가했는지 확인한다. 파이썬 사전의 항목은 키로 참조됩니다. 항목은 기본적으로 키 - 값 쌍입니다. 키는 사전에서 항상 고유합니다. 이미 존재하는 키를 추가하려고하면 파이썬이 불평하지 않을 것입니다. 그냥 무시할 것입니다. 프로그램의 한계는 값 집합 (즉, 특정 제품의 여러 인스턴스)을 처리 할 수 없다는 것입니다. –
또한 파이썬에서는 함수와 변수 이름을 소문자로 쓰고 싶을 것이다. –