Zadanie - kontakty, aktualizacja quizu
Kontakty z przechowywaniem danych
import json
import os
if os.path.exists("plik_z_danymi.json"):
with open("plik_z_danymi.json", "r", encoding="utf8" ) as plik_json:
kontakty=json.load(plik_json)
else:
kontakty={}
while True:
print("""
Wybierz operację do wykoniania:
1 - dopisanie pozycji do ksiązki
2 - aktualizacja pozycji książki
3 - usunięcie pozycji książki
4 - wydruk imion z książki
5 - wydruk całej książki z kontaktami
6 - koniec programu
""")
kod = int(input("Podaj kod operacji = "))
if kod == 1:
nowe_imie = input("Wpisz nowe imię: ")
kontakt = input("Wpisz nowe dane kontaktowe: ")
kontakty[nowe_imie]= kontakt
elif kod == 2:
imie = input("Podaj imię/ksywkę osoby do aktualizacji: ")
if imie in kontakty:
kontakt = input("Podaj zaktualizowane dane kontaktowae: ")
kontakty[imie]= kontakt
else:
print("Nie ma takiego kontaktu w książce.")
elif kod == 3:
imie = input("Kogo chcesz usunąć? ")
if imie in kontakty:
del kontakty[imie]
print(f"Usunięto kontakt: {imie}")
else:
print("Nie znaleziono takiego kontaktu.")
elif kod == 4:
for imie in kontakty:
print(imie)
elif kod == 5:
print("Książka kontaktowa: ")
for imie, kontakt in kontakty.items():
print(imie, "-", kontakt)
elif kod == 6:
odp = input("Czy chcesz zapisać dane" )
if odp == "Tak":
with open("plik_z_danymi.json", "w") as plik_json:
json.dump(kontakty, plik_json)
break
elif odp == "Nie":
break
else:
print("Podaj numer opreracji ponownie")
kod = int(input("Podaj kod operacji = "))
Zaktualizowany quiz
import random
import json
with open("pytania.json", "r", encoding="utf-8") as f:
kwestionariusz = json.load(f)
while True:
print("""
Wybierz operację do wykoniania:
1 - dodaj pytanie
2 - rozpocznij quiz
3 - koniec programu
""")
kod = int(input("Podaj kod operacji = "))
if kod == 1:
pytanie = input("Podaj treść nowego pytania: ")
odpowiedzi = []
for i in range(3):
odp = input(f"Podaj {i+1}. odpowiedz: ")
punkty_odp = input("Podaj czy odpowiedz jest poprawna (P/F): ")
if punkty_odp == "P":
punkty_odp = 1
elif punkty_odp == "F":
punkty_odp = -0.5
else:
punkty_odp =input("Błąd! Wpisz 'P' - prawda lub 'F' - fałsz: ")
odpowiedzi.append([odp, punkty_odp])
kwestionariusz[pytanie] = odpowiedzi
with open("pytania.json", "w", encoding="utf8") as plik_json:
json.dump(
kwestionariusz,
plik_json,
indent=2,
sort_keys=True,
ensure_ascii=False,
)
elif kod == 2:
punkty = 0
for pytanie, warianty in kwestionariusz.items():
print(pytanie)
random.shuffle(warianty)
for indeks, wariant in enumerate( warianty, start=1):
print(indeks, ". ", wariant[0])
wybor_gracza = input("Twoj wybor: ")
while wybor_gracza not in ("1", "2", "3"):
print("Zly nr odpowiedzi. Wpisz cos z zakresu 1-3")
wybor_gracza = input("Twoj wybor: ")
indeks_odp = int(wybor_gracza)-1
punkty += warianty[indeks_odp][1]
print("Twoje aktualne pkt. to:", punkty)
elif kod == 3:
break
else:
print("Podaj numer opreracji ponownie")
kod = int(input("Podaj kod operacji = "))
Pytania, odpowiedzi, punkty z pliku json
{
"Co robi heterodon, gdy czuje się zagrożony?": [
[
"Syczy i udaje, że atakuje, a jeśli to nie działa udaje martwego",
1
],
[
"Atakuje, aż odstraszy zagrożenie",
-0.5
],
[
"Skacze w kierunku napastnika",
-0.5
]
],
"Co robi pyton królewski, gdy czuje się zagrożony?": [
[
"Głośno syczy i atakuje natychmiast",
-0.5
],
[
"Zwija się w kulkę, chowając głowę w środku",
1
],
[
"Zrzuca skórę, żeby zmylić przeciwnika ",
-0.5
]
],
"Dlaczego czarna mamba nazywa się 'czarna'?": [
[
"Bo ma całe czarne ciało",
-0.5
],
[
"Bo wnętrze jej paszczy jest czarne",
1
],
[
"Bo to kolor jej jadu",
-0.5
]
],
"Ile powiek mają węże?": [
[
"Jedną",
-0.5
],
[
"Dwie",
-0.5
],
[
"Nie mają powiek ",
1
]
],
"Jak węże 'czują' zapachy?": [
[
"Nie czują",
-0.5
],
[
"Nosem",
-0.5
],
[
"Językiem",
1
]
],
"Jak węże odbierają dźwięki?": [
[
"Mają uszy zewnętrzne jak ssaki",
-0.5
],
[
"Nie słyszą w ogóle",
0,
5
],
[
"Odbierają wibracje przez ciało i ucho wewnętrzne",
1
]
],
"Jak węże są w stanie połknąć zdobycz w całość?": [
[
"Ich szczęki są zbudowane z elastycznych więzadeł, które pozwalają im się rozszerzać ",
1
],
[
"Potrafią 'wyłamać' swoją szczękę, by zrobić więcej miejsca",
-0.5
],
[
"Ich szczęki są bardzo siline ",
-0.5
]
],
"Jaki wąż jest najdłuższy?": [
[
"Pyton siatkowy",
1
],
[
"Kobra",
-0.5
],
[
"Pyton królewski",
-0.5
]
],
"Jaki wąż jest uznawany za największego?": [
[
"Pyton siatkowy",
-0.5
],
[
"Anakonda zielona",
1
],
[
"Kobra królewska",
-0.5
]
],
"Po co wielu wężom intensywne lub kontrastowe ubarwienie?": [
[
"Aby przyciągać partnera",
-0.5
],
[
"Aby odstraszać drapieżniki, sygnalizując, że są jadowite",
1
],
[
"Aby wtopić się w tło",
-0.5
]
]
}