Övningsuppgift
Övningsuppgift 2 – Hantera användardata i ett enklare system
Bygg ett menyprogram som lagrar, söker och sorterar användare.
Vad du ska visa
Den här uppgiften bygger på det du har lärt dig i Modul 2. Du ska visa att du kan:
- Planera program med algoritmtänk.
- Använda listor, dictionaries och tuples.
- Skriva funktioner för att strukturera din kod.
- Använda loopar, villkor och användarinmatning.
- Använda sökning och sortering i listor.
- Strukturera din kod så att den är läsbar och lätt att följa.
Uppgift
Skapa ett program där användaren kan hantera en lista med användare. Programmet ska ge användaren möjlighet att:
- Lägga till användare med namn, ålder och e-post.
- Söka efter användare via namn eller e-post.
- Visa alla användare sorterade alfabetiskt efter namn.
- Avsluta programmet.
Du ska använda funktioner för att dela upp din kod. Ditt program ska vara användarvänligt, tydligt kommenterat och skrivet med god struktur.
Bedömning
- Användning av listor och dictionaries.
- Att programmet är uppdelat i funktioner med tydligt syfte.
- Att menyn fungerar och att programmet är logiskt uppbyggt.
- Att du använder villkor, loopar och inmatning korrekt.
- Att du visar förståelse för sortering, sökning och datastrukturer.
- Att din kod är läsbar och kommenterad.
Checklista före inlämning
- Jag har en fungerande meny med val 1-4.
- Jag använder en lista med dictionaries för att lagra användare.
- Jag har skapat och använt minst tre egna funktioner.
- Jag har testat mitt program så att alla val fungerar.
- Jag har kommenterat min kod där det behövs.
Mallkod att utgå ifrån
# Funktion: Lägg till en användare
def add_user(users):
# Här ska du skriva kod för att läsa in namn, ålder och e-post.
# Skapa en dictionary med informationen och lägg till den i listan users.
pass
# Funktion: Sök efter en användare
def search_user(users):
# Be användaren skriva in ett sökord, till exempel namn eller e-post.
# Sök i listan efter matchande användare och skriv ut resultat.
pass
# Funktion: Visa alla användare
def show_users(users):
# Sortera användarna efter namn.
# Skriv ut all information om varje användare.
pass
# Huvudfunktion: Sköter meny och programflöde
def main():
users = [] # Här lagras användarna som dictionaries
while True:
print("\n1. Lägg till användare\n2. Sök användare\n3. Visa alla användare\n4. Avsluta")
choice = input("Välj ett alternativ: ")
if choice == "1":
add_user(users)
elif choice == "2":
search_user(users)
elif choice == "3":
show_users(users)
elif choice == "4":
print("Programmet avslutas.")
break
else:
print("Ogiltigt val, försök igen.")
main()
Lösningsförslag
def add_user(users):
name = input("Ange namn: ")
try:
age = int(input("Ange ålder: "))
except ValueError:
print("Fel: Åldern måste vara ett heltal.")
return
email = input("Ange e-post: ")
user = {"name": name, "age": age, "email": email}
users.append(user)
def search_user(users):
search_term = input("Sök namn eller e-post: ").lower()
found = [
user for user in users
if search_term in user["name"].lower()
or search_term in user["email"].lower()
]
for user in found:
print(f"{user['name']} ({user['age']} år) - {user['email']}")
if not found:
print("Ingen träff.")
def show_users(users):
sorted_users = sorted(users, key=lambda x: x["name"])
for user in sorted_users:
print(f"{user['name']} ({user['age']} år) - {user['email']}")
def main():
users = []
while True:
print("\n1. Lägg till användare\n2. Sök användare\n3. Visa alla\n4. Avsluta")
choice = input("Välj ett alternativ: ")
if choice == "1":
add_user(users)
elif choice == "2":
search_user(users)
elif choice == "3":
show_users(users)
elif choice == "4":
print("Programmet avslutas.")
break
else:
print("Ogiltigt val, försök igen.")
main()