# 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