słowniki /nauka proszę o pomoc

0

Cześć proszę o pomoc.
Mam zrobić słownik, który jest elementem większej części kodu jednak z tym słownikiem mam największy problem .
Chce aby program pobierał od użytkownika dane wejściowe - nazwy par postaci i teoretycznie , ten fragment kodu działa

print("Zdecydowałeś się na wprowadzenie postaci do słownika")
soon_name = input("Wprowadź nazwe postaci 1")
father_name = input("Wprowadź nazwę postaci 2")
person = {"Syn":soon_name, "Ojciec": father_name, } 
print(person)

Problem polega na tym ,że , gdy wpiszę raz nazwy postaci , a następnie nakażę programowi, aby wykonał tę samą czynność , to słownik nie zapamiętuje wpisanych postaci wcześniej i te z poprzedniego wykonania programu nie zapisują mi się w słowniku , czyli jak np. wykonam program 2 razy chce mieć w słowniku 4 pary postaci , a mam 2 . Jak rozwiązać ten problem

całość kodu wygląda następująco

bot_name = ''
bot_name2 ='imię bota'
answer1 ='E'
answer2 ='N'
choice=''
userneme =''
nickname  =''
print("jestem bot", bot_name2)
print("Czy chcesz się przedstawić\n Jeśli tak wprowadź T jeśli nie wprowadź S  ")
useranswer = input("Wprowadź odpowiedź")
if useranswer =="T":
   username= input("Wprowadź swoje imię")
   print("Witaj", username, "Miło Cię poznać")
   
elif useranswer =="S":
     print("Szanuję twoją decycję jak mam się do ciebie zwracać? ")
     nickname = input("Wprowadź odpowiedź")
     print("Bardzo miło mi Cię pozna",nickname)
     print("Jeśli chcesz", nickname ,"możesz zmienić moje imię\n aby zmienić imię wprowadź t, aby pozostawić obecną nazwę wprowadź n")
     change_botname = input("Wprowdź odpowiedź")
     if change_botname =='t':
        print("Zdecydowałeś się na zmianę mojego imienia")
        bot_name = input("wprowadź nowe imię dla bota")
        print("Od teraz moje imię , to:", bot_name)
     elif change_botname == 'n':
          print("zdecydowałeś się na zachowanie mojego imienia" ,bot_name2)
          
def menu():    
    choice = None
    while choice !='0':
            print(""" 
                    0 - zakończ działanie programuT
                    
                    1 = dodaj pary postaci syn ojciec
                    
                    2 - usuń pary postaci syn ojciec 
                    
                    3 - zamień pary postaci syn ojciec
""")
            choice = input("Jaką czynność chcesz wykonać")
            if choice =="0":
               print("Zdecydowałeś się zakończyć działanie programu\n nara")
            elif choice =="1":
             addict()
            elif choice == '2':
             deletedict()
            elif choice =='3':
               print()
def changedict():
    print("Zdecydowałeś się na wymianę pary syn ojciec")
    soonname2= input("Wprowadź nową nazwę syna")
    fathername2= input("Wprowadź nową nazwę ojca")

def check():
    choice2 = None
    while choice2  == '1':
          #choice2 = input("Co chcesz zrobić? wprowadź liczbę od 0 do 3")
          if choice2 != '1':
             print(choice)
        #if choice and choice2 =='1':     

def addict():
 
   
   
    print("Zdecydowałeś się na wprowadzenie postaci do słownika")
    soon_name = input("Wprowadź nazwe postaci 1")
    father_name = input("Wprowadź nazwę postaci 2")
    person = {"Syn":soon_name, "Ojciec": father_name, } 
    print(person)
  
   
 def deletedict():
 if choice =="2":
    print("Zdecydowałeś się na usunięcie ze słownika wybranych par")
    user = input("Wprowadź nazwy osób, które chcesz usunąć")
    if user in person:
      del person[user]
import random
name = ( "Postać1", "Postać2", "Postać3",
"Postać4", "Postać5", "Postać6i",
"Postać7", "Postać8, "Postać9","Postać10")
listname = random.choice(name)
whoisyourdad = input("Wprowadź imię i nazwisko postaci") 
if whoisyourdad :
   print(listname)
   print("Co chcesz zrobić? Zakończyć działanie programu?\n Czy przejść do jego dalszego wykonywania?\n Jeśli czhcesz zakończyć działanie programu wpisz E jeśli chcesz kontynuować wpisz N")
   user = input("Wprowadź odpowiedź")
   menu()
2

Słownik czyli klucz-wartość, gdzie klucz jest unikatowy. Więc za każdym razem jak dodajesz ten sam klucz, ale inną wartość, to się ona nadpisuje.

0

@Dregorio: Czyli czy w takim wypadku dobrym pomysłem będzie opcja umożliwienie użytkownikowi wpisania unikalnych kluczy oraz umożliwienie przypisania do nich postaci ?
To jest taki jeden z moich konceptów na rozwiązanie tego problemu lub drugi , to utworzenie listy np. 10 kluczy , które będą wybierane przypadkowo i do tego wylosowanego klucza przypisywana byłaby postać wprowadzona przez użytkownika. Czy może jest jakieś prostsze rozwiązanie tego problemu? o ile moje pomysły są w ogóle dobre ?

1

@python_green: Stwórz sobie listę słowników.

all_characters = []

print("Zdecydowałeś się na wprowadzenie postaci do słownika")

soon_name = input("Wprowadź nazwe postaci 1")
father_name = input("Wprowadź nazwę postaci 2")
person = {"Syn":soon_name, "Ojciec": father_name, } 

all_characters.append(person)
1

@python_green: No ja bym raczej wziął i stworzył jakiś typ, który by to przechowywał, a potem zapakował do listy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1