# 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