Last active
October 27, 2025 20:02
-
-
Save horstjens/46bd43a7420e779d1516dd54cc472f2d to your computer and use it in GitHub Desktop.
termin 07
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| text = """ | |
| Kanns was schön'res geben | |
| als nach Höh'n zu streben | |
| die noch keines Menschen Fuß betrat ? | |
| Und bei Regenwettern | |
| durch Kamine klettern | |
| und bei Schnee zu reiten auf dem Grat? | |
| """ | |
| print(text) | |
| # text in Datei schreiben: | |
| # modi für open() "r": read "w": write "a":append | |
| # siehe auch help("open") | |
| with open("lied.txt", "w") as datei: | |
| datei.write(text) | |
| print("text wurde in die Datei 'lied.txt' geschrieben") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| text = """ | |
| da steht nix drin | |
| """ | |
| print("text ist leer:") | |
| print(text) | |
| # text aus Datei lesen: | |
| # modi für open() "r": read "w": write "a":append | |
| # siehe auch help("open") | |
| with open("lied.txt", "r") as datei: | |
| text = datei.read() | |
| print("text wurde von Datei 'lied.txt' gelesen") | |
| print("text ist jetzt:") | |
| print(text) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| text = """ | |
| da steht nix drin | |
| """ | |
| print("text ist leer:") | |
| print(text) | |
| # text zeilenweise lesen | |
| # modi für open() "r": read "w": write "a":append | |
| # siehe auch help("open") | |
| with open("lied.txt", "r") as datei: | |
| zeilen = datei.readlines() | |
| print("text wurde von Datei 'lied.txt' gelesen in ein array (eine Liste) von zeilen") | |
| print("----- liste zeilen: ------") | |
| print(zeilen) | |
| print() | |
| print("------iterieren über zeilen:------") | |
| for zeile in zeilen: | |
| print(zeile) | |
| print("----iterieren ohne Leerzeilen zu printen-----") | |
| for zeile in zeilen: | |
| print(zeile, end="") | |
| print() | |
| print("--------------") | |
| print("aus der zeilenliste wieder einen einzigen text machen (multi-line-string") | |
| print("----------") | |
| print("".join(zeilen)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # csv modul | |
| # siehe https://docs.python.org/3/library/csv.html | |
| # csv steht für comma seperated file | |
| # einfach ein textfile wo die spalten einer tabelle mit Beistrichen getrennt sind | |
| # kann ganz normal über open() gelesen/geschreiben werden | |
| # aber besser geht's mit dem csv Modul (python standard library) | |
| # und den funktionen DictReader und DictWriter | |
| # bsp für csv.DictWriter | |
| import csv | |
| # append mode ("a") funktioniert auch wenn eine Datei noch nicht existiert | |
| with open('konto.csv', 'a', newline='') as konto: | |
| spaltenköpfe = ['datum', 'text', "betrag"] | |
| schreiber = csv.DictWriter(konto, fieldnames=spaltenköpfe) | |
| schreiber.writeheader() | |
| schreiber.writerow({'datum': "2025-10-01", | |
| "text": "Stromrechnung", | |
| "betrag": 700}) | |
| schreiber.writerow({'datum': "2025-10-22", | |
| "text": "Miete", | |
| "betrag": 1400}) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # simuliert würfel | |
| import random | |
| # simuliere wurf mit 2 würfeln | |
| # gib die summe der augenzahl zurück | |
| print(random.randint(1,6)) | |
| print(random.randint(1,6)) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # simuliert würfel | |
| import random | |
| # simuliere wurf mit 2 würfeln | |
| # gib die summe der augenzahl zurück | |
| a = random.randint(1,6) | |
| b = random.randint(1,6) | |
| print("erster Wurf:", a) | |
| print("zweiter Wurf:", b) | |
| print("summe:", a+b) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # simuliert würfel | |
| import random | |
| # simuliere wurf mit 2 würfeln | |
| # gib die summe der augenzahl zurück | |
| # Function die sowohl summe zurückgibt als auch Text | |
| # return value: (8, "6+2") | |
| def wurf(): | |
| a = random.randint(1,6) | |
| b = random.randint(1,6) | |
| return a+b, f"{a}+{b}" | |
| # testen | |
| for _ in range(10): | |
| print(wurf()) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # simuliert würfel | |
| import random | |
| # simuliere wurf mit 2 würfeln | |
| # gib die summe der augenzahl zurück | |
| # Function die sowohl summe zurückgibt als auch Text | |
| # return value: (8, "6+2") | |
| # test-teil sauber trennen von funktion | |
| def wurf(): | |
| a = random.randint(1,6) | |
| b = random.randint(1,6) | |
| return a+b, f"{a}+{b}" | |
| if __name__ == "__main__": | |
| # wird nur ausgeführt, wenn das programm direkt gestartet wurde | |
| # wird ignoriert, wenn programm importiert wurde | |
| # testen | |
| for _ in range(10): | |
| print(wurf()) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # importiere die Funktion wurf von würfel004.py | |
| import würfel004 | |
| print(würfel004.wurf()) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import random | |
| # verbesserte Funktion: erlaubt parameter für | |
| # anzahl der würfel, | |
| # anzahl der seiten pro Würfel | |
| def wurf(anzahl_würfel=2, anzahl_seiten=6): | |
| summe = 0 | |
| text = "" | |
| for x in range(anzahl_würfel): | |
| e = random.randint(1, anzahl_seiten) | |
| summe += e | |
| text += f"+{e}" | |
| return summe, text[1:] # erstes zeichen löschen | |
| if __name__ == "__main__": | |
| print("testen") | |
| print("wurf(): {:>2} {}".format(*wurf())) | |
| print("wurf(1): {:>2} {}".format(*wurf(1))) | |
| print("wurf(3,6): {:>2} {}".format(*wurf(3,6))) | |
| print("wurf(2,20): {:>2} {}".format(*wurf(2,20))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import random | |
| # exploding dice: | |
| # würfel, der nochmal würfeln darf wenn eine (6 bzw. | |
| #höchste Augenzahl) gewürfelt wird. | |
| # bsp: 6-seitiger würfel: | |
| # es wird eine 6 gewürfelt, sie zählt 5 (6-1) aber darf nochaml würfeln | |
| # würfelt wieder eine 6 (zählt wieder als 5, also 5+5=10), darf nochmal | |
| # würfelt eine 2, ergebnis ist 5+5+2 = 12 | |
| def exploding_dice(anzahl_würfel=2, anzahl_seiten=6): | |
| summe = 0 | |
| text = "" | |
| for x in range(anzahl_würfel): | |
| while True: | |
| e = random.randint(1, anzahl_seiten) | |
| summe += e | |
| text += f"+{e}" | |
| if e == anzahl_seiten: | |
| summe -= 1 | |
| text += "-1" | |
| continue # geht an den Anfang der Schleife | |
| break | |
| text += " " | |
| return summe, text[1:] # erstes zeichen löschen | |
| # verbesserte Funktion: erlaubt parameter für | |
| # anzahl der würfel, | |
| # anzahl der seiten pro Würfel | |
| def wurf(anzahl_würfel=2, anzahl_seiten=6): | |
| summe = 0 | |
| text = "" | |
| for x in range(anzahl_würfel): | |
| e = random.randint(1, anzahl_seiten) | |
| summe += e | |
| text += f"+{e}" | |
| return summe, text[1:] # erstes zeichen löschen | |
| if __name__ == "__main__": | |
| print("testen") | |
| for _ in range(10): | |
| print("wurf(2,6): {:>2} = {}".format(*exploding_dice(2,6))) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import random | |
| # D&D würfel | |
| # "2d6+4" | |
| # nimm 2 würfel (6-seiten) zum endergebnis zähle 4 dazu | |
| # "3d20-1" | |
| # nimm 3 20-seitige würfel, ziehe vom endergebnis 1 ab | |
| # wenn ein kleines d drin steht .... "normaler" Würfel | |
| # wenn ein großes D drin steht ..... "exploding dice" | |
| # "2D6" ... nimm 2 exploding dice mit je 6 seiten, zähle zum | |
| # endergebnis nichts dazu | |
| def dnd(anzahl_würfel=2, | |
| anzahl_seiten=6, | |
| exploding=False, | |
| delta=0): | |
| if exploding: | |
| summe, text = exploding_dice(anzahl_würfel, anzahl_seiten) | |
| else: | |
| summe, text = wurf(anzahl_würfel, anzahl_seiten) | |
| # delta berücksichtigen | |
| if delta == 0: | |
| return summe, text | |
| if delta > 0: | |
| summe += delta | |
| text += f"+{delta}" | |
| return summe, text | |
| if delta < 0: | |
| summe += delta | |
| text += f"{delta}" # hat Minus schon dabei | |
| return summe, text | |
| def exploding_dice(anzahl_würfel=2, anzahl_seiten=6): | |
| summe = 0 | |
| text = "" | |
| for x in range(anzahl_würfel): | |
| while True: | |
| e = random.randint(1, anzahl_seiten) | |
| summe += e | |
| text += f"+{e}" | |
| if e == anzahl_seiten: | |
| summe -= 1 | |
| text += "-1" | |
| continue # geht an den Anfang der Schleife | |
| break | |
| text += " " | |
| return summe, text[1:] # erstes zeichen löschen | |
| # verbesserte Funktion: erlaubt parameter für | |
| # anzahl der würfel, | |
| # anzahl der seiten pro Würfel | |
| def wurf(anzahl_würfel=2, anzahl_seiten=6): | |
| summe = 0 | |
| text = "" | |
| for x in range(anzahl_würfel): | |
| e = random.randint(1, anzahl_seiten) | |
| summe += e | |
| text += f"+{e}" | |
| return summe, text[1:] # erstes zeichen löschen | |
| if __name__ == "__main__": | |
| print("testen") | |
| for _ in range(10): | |
| print("dnd(2,6,True,4): {:>2} = {}".format(*dnd(2,6,True, 4))) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment