PCEP-30-02 1.0 – Computerprogrammierung und Grundlagen von Python (18 %)
PCEP-30-02 1.1 - Grundlegende Begriffe und Definitionen verstehen
PCEP-30-02 1.2 – Logik und Struktur von Python verstehen
PCEP-30-02 1.3 – Literale und Variablen in Code einführen und verschiedene Zahlensysteme nutzen
PCEP-30-02 1.4 – Operatoren und Datentypen passend zum Problem wählen
PCEP-30-02 1.5 – Eingabe-/Ausgabe-Operationen in der Konsole durchführen
PCEP-30-02 2.0 – Kontrollfluss – Bedingte Blöcke und Schleifen (29%)
PCEP-30-02 2.1 – Entscheidungen treffen und den Programmfluss mit „if“ steuern
PCEP-30-02 3.0 – Datenkollektionen – Tupel, Dictionaries, Listen und Strings (25%)
PCEP-30-02 3.1 – Daten mit Listen sammeln und verarbeiten
PCEP-30-02 3.3 – Daten mit Dictionaries sammeln und verarbeiten
PCEP-30-02 3.4 – Mit Strings arbeiten
PCEP-30-02 4.0 – Funktionen und Ausnahmen (28%)
PCEP-30-02 4.3 – Python Built-In Exceptions Hierarchie
PCEP-30-02 4.4 – Grundlagen der Fehlerbehandlung in Python

Python Übungsaufgabe: Passwortgenerator (Musterlösung)

Pseudo-Code:

Wiederhole unendlich:
Erstelle eine leere Zeichenliste

Abfrage:
    Eingabe der Passwortlänge vom Benutzer
    Konvertiere Eingabe in eine Ganzzahl

    Falls Eingabe ungültig oder kleiner als 8:
        Setze Passwortlänge auf 8
        Gib eine Warnung aus

    Erstelle eine Liste für das Passwort:
        Füge eine zufällige Zahl hinzu
        Füge ein zufälliges Sonderzeichen hinzu
        Füge einen zufälligen Kleinbuchstaben hinzu
        Füge einen zufälligen Großbuchstaben hinzu
        Füge weitere zufällige Zeichen hinzu, bis die Anzahl der Zeichen erreicht wurde

    Mische die Zeichenliste zufällig

    Baue das Passwort als Zeichenkette zusammen

    Gib das generierte Passwort aus

Falls Fehler:
    Gib die Fehlernachricht aus

Python-Code:

# Python-Code:
import random
import string

while True:
    zeichenliste = []

    try:
        anzahl_passwort_stellen = int(input("Wie lang soll das Zufallspasswort sein (Mindestens 8 Zeichen)?\n= "))

        # Wurde eine gültige Zahl übergeben?
        if not anzahl_passwort_stellen or type(anzahl_passwort_stellen) is not int or anzahl_passwort_stellen < 8:
            anzahl_passwort_stellen = 8
            print("Das Passwort muss mindestens 8 Zeichen lang sein. Daher wurde der Wert auf 8 gesetzt.\n")

        # Erstelle eine Liste mit zufälligen Zeichen
        for i in range(0, anzahl_passwort_stellen - 3):
            # Mindestens ein Sonderzeichen, eine Zahl, sowie ein Klein- und Großbuchstabe im ersten Durchgang
            if i == 0:
                zeichenliste = [
                    random.randint(0, 9),                   # Ganzzahl hinzufügen
                    random.choice(string.punctuation),      # Sonderzeichen hinzufügen
                    random.choice(string.ascii_lowercase),  # Kleinbuchstabe hinzufügen
                    random.choice(string.ascii_uppercase)   # Großbuchstaben hinzufügen
                ]
            # Rest mit zufälligen Zeichen auffüllen
            else:
                zeichenliste.append(random.choice(string.printable))

        # Mache die Reichenfolge der Zeichen zufällig
        random.shuffle(zeichenliste)

        # Baue das Passwort zusammen
        passwort = ""
        for i in zeichenliste:
            passwort += str(i)

        print("Das Passwort lautet:", passwort, "\n")

    except Exception as error:
        print(error)