Als txt-Datei herunterladen


# 7-1

anzahl = int(input("Wie oft soll der Text ausgegeben werden?"))
text = "Wann kommt endlich der Nikolaus?"
# File mit dem Schreibemodus öffnen
with open("nikolaus.txt", "w") as f:
    # Schleife die anzahl mal durchlaufen wird
    for i in range(0, anzahl + 1):
        print(text + "\n")
        # Text genau ein mal in die geöffnete Datei schreiben
        f.write(text + "\n")

# Dostojewski Text runterladen lynx -dump http://www.cis.uni-muenchen.de/kurse/max/einfprog/texte/Verbrechen_Strafe_1924.txt > dostojewski.txt

# 7-2

# dostojewski.txt öffnen und reinen Text rauslesen - Modus "r", da wir nur lesen wollen
f = open("dostojewski.txt", "r")
text = f.read()
# Datei wieder schließen, da wir bereits den ganzen Text haben
f.close()
# Leeres "Dictionary" anlegen, in dem später die einzelnen Wörter und Häufigkeit gespeichert wird
wordCount = {}
# Wir brauchen nicht erst nach Zeilen aufspalten sondern sagen direkt den ganzen Text splitten. Dies versucht direkt Wörter zu bekommen.
for word in text.split():
    # Prüfen ob das Wort noch NICHT in unserem Dictionary ist
    if word not in wordCount:
        # Dann fügen wir dem Dictionary das Wort hinzu, indem wir den Wert auf 1 setzen.
        wordCount[word] = 1  #
    # Ansonsten, d.h. wenn das Wort bereits in unserem Dictionary vorhanden war, erhöhen wir den aktuellen Wert des Wortes um eins
    else:
        wordCount[word] += 1

# Neue Datei mit Schreibemodus öffnen, in der die Häufigkeit der Wörter reingeschrieben wird.
with open("frequenzliste.txt", "w") as f:
    # Wir ziehen uns aus dem wordCount-Dictionary jeweils das Paar Wort/Häufigkeit heraus und schreiben diese in die angegbenen Variablen.
    for word, occurences in wordCount.items():
        # Wir bauen uns den String zusammen - WICHTIG: Hier muss das + zum Verbinden von einzelnen Elementen verwendet werden.
        string = "Das Wort " + word + " kommt " + str(occurences) + " mal vor.\n"
        # Wir schreiben den String in die Datei
        f.write(string)

# 7-3
# Frequenzliste wie oben erzeugen
f = open("dostojewski.txt", "r")
text = f.read()
f.close()
wordCount = {}
for word in text.split():
    if word not in wordCount:
        wordCount[word] = 1
    else:
        wordCount[word] += 1
# Einträge im Dictionary zählen
print("In der Datei sind", str(len(wordCount)), "verschiedene Wörter.")

# OPTION 2
# WIR ÖFFNEN DIE ERZEUGTE FREQUENZLISTE.TXT UND ZÄHLEN DIE ZEILEN
with open("frequenzliste.txt", "r") as f:
    text = f.read()
    counter = 0
    # Zeilen mit split nach Zeilenumbrüchen generieren
    for line in text.split("\n"):
        # Für jede gefundene Zeile Counter um 1 erhöhen
        counter += 1
print("In der Datei sind", str(counter), "verschiedene Wörter.")

# 7-4 A)
# Frequenzliste wie oben erzeugen
f = open("dostojewski.txt", "r")
text = f.read()
f.close()
wordCount = {}
for word in text.split():
    if word not in wordCount:
        wordCount[word] = 1
    else:
        wordCount[word] += 1
# Es wird die Eingabe genau so gelassen und genau mit der Eingabe gesucht
suchwort = input("Nach welchem Wort soll gesucht werden? ")
for word, occurences in wordCount.items():
    if word == suchwort:
        print("Das gesucht Wort kommt", str(occurences), "mal vor.")

# 7-4 B)
f = open("dostojewski.txt", "r")
text = f.read()
f.close()
wordCount = {}
for word in text.split():
    if word not in wordCount:
        wordCount[word] = 1
    else:
        wordCount[word] += 1
suchwort = input("Nach welchem Wort soll gesucht werden? ")
# Wir verändern die Eingabe so, dass nurnoch die groß/kleinschreibung des ersten Wortes relevant ist.
# Das heißt, wir machen alle Buchstaben bis auf den ersten Buchstaben klein
# wir nehmen den Ersten Buchstaben so wie er ist und alle Buchstaben ab dem 2. mit .lower()
suchwort = suchwort[0] + suchwort[1::].lower()
totalOccurences = 0
for word, occurences in wordCount.items():
    # Auch dieses Wort machen wir bis auf den ersten Buchstaben klein
    changedWord = word[0] + word[1::].lower()
    if changedWord == suchwort:
        totalOccurences += occurences

print("Das gesucht Wort kommt", str(totalOccurences), "mal vor.")

# 7-5

BIN: 1000000
DEZ: 64
OKT: 100
HEX: 40

BIN: 101000
DEZ: 40
OKT: 50
HEX: 28

BIN: 10101100
DEZ: 172
OKT: 254
HEX: AC

BIN: 101011
DEZ: 43
OKT: 53
HEX: 2B