Ö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:

  1. Lägga till användare med namn, ålder och e-post.
  2. Söka efter användare via namn eller e-post.
  3. Visa alla användare sorterade alfabetiskt efter namn.
  4. 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()

Till startsidan