Aufgabenblatt 3

from random import randint
 
# Aufgabe 3.0
def scheresteinpapier():
    options = ["Schere", "Stein", "Papier"]
    print("Schere, Stein oder Papier?")
 
    isGameOver = False
 
    while(not isGameOver):
 
        user_input = input()
        if user_input not in options:
            print("Falsche Eingabe")
            return
 
        computer_input = options[randint(0, 2)]
        print(f"Computer: {computer_input}")
 
        if user_input == computer_input:
            print("Unentschieden")
        elif user_input == "Schere":
            if computer_input == "Stein":
                print("Computer gewinnt")
            else:
                print("Spieler gewinnt")
                isGameOver = True
        elif user_input == "Stein":
            if computer_input == "Papier":
                print("Computer gewinnt")
            else:
                print("Spieler gewinnt")
                isGameOver = True
        elif user_input == "Papier":
            if computer_input == "Schere":
                print("Computer gewinnt")
            else:
                print("Spieler gewinnt")
                isGameOver = True
        else:
            print("Falsche Eingabe")
            isGameOver = True
 
# Aufgabe 3.1
def ratespiel(n:int):
    randomNumber = randint(1, n)
 
    print(f"Raten Sie eine Zahl zwischen 1 und {n}")
    anzahlVersuche = 0
    isGameOver = False
 
    while(not isGameOver):
        user_input = int(input())
        anzahlVersuche += 1
        if user_input == randomNumber:
            print("Richtig geraten")
            isGameOver = True
            print(f"Anzahl Versuche: {anzahlVersuche}")
        elif user_input < randomNumber:
            print("Zu niedrig")
        else:
            print("Zu hoch")
 
    return anzahlVersuche
#Aufgabe 3.2
def erzeugeListeKleinbuchstaben():
    alphabet = "abcdefghijklmnopqrstuvwxyz"
    konsonanten = "bcdfghjklmnpqrstvwxyz"
    characters = list(alphabet)
    print(characters)
    combinationsBase = []
 
    # Basisalgorithmus um alle möglichen Kombinationen zu erzeugen, dabei wird
    # wie in der Aufgabe 26^4 mal iteriert.
    for char1 in characters:
        for char2 in characters:
            for char3 in characters:
                for char4 in characters:
                    combination = char1 + char2 + char3 + char4
                    combinationsBase.append(combination)
 
 
 
    # Filtern der Kombinationen, sodass nur Kombinationen ohne doppelte Konsonanten
    # in der Mitte enthalten sind
 
    print(len(combinationsBase))
 
    combinationFiltered = []
 
    for char1 in characters:
        for char2 in characters:
            for char3 in characters:
                for char4 in characters:
                    combination = char1 + char2 + char3 + char4
 
                    if char2 in konsonanten and char3 in konsonanten:
                        continue
                    combinationFiltered.append(combination)
 
    print(len(combinationFiltered))
 
#Aufgabe 3.3
def workWithDict(d:dict):
 
    # Aufgabe 3.3 a)
    # len(d)
    print(len(d.items()))
 
    keys = d.keys()
    #Aufgabe 3.3 b)
    print(keys.__contains__("Hallo"))
 
    # ist das gleiche und der korrekte Weg
    print("Hallo" in d)
    #Aufgabe 3.3 c)
 
    keys = list(keys)
    areAllKeysInteger = True
 
    for k in keys:
        if type(k) is not int:
            areAllKeysInteger = False
            break
 
    print(f"Alle Schlüssel sind Integer: {areAllKeysInteger}")
 
    # Aufgabe 3.3 d)
    d[1] = 2
    # Nur Testzwecke
    d["Obst"] = "Banane"
    print(d)
 
 
 
if __name__ == "__main__":
    #ratespiel(100)
    print(erzeugeListeKleinbuchstaben())
 
    workWithDict({1: "a", 2: "b", 3: "c"})