Last active
October 27, 2025 15:44
-
-
Save horstjens/534e5062df26f8c9ba50dbe5aa522574 to your computer and use it in GitHub Desktop.
termin_06
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
| # conways game of life | |
| # jede zelle hat 8 nachbarzellen | |
| # zelle überlebt in nächster generation mit 2 oder 3 nachbarn | |
| # bei weniger als 2 oder mehr als 3 nachbarn stirbt zelle | |
| überleben = {0 : False, | |
| 1 : False, | |
| 2 : True, | |
| 3 : True, | |
| 4 : False, | |
| 5 : False, | |
| 6 : False, | |
| 7 : False, | |
| 8 : False, | |
| } | |
| breite = 8 | |
| höhe = 8 | |
| spielfeld = [False for x in range(8)] | |
| print(spielfeld) | |
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
| # conways game of life | |
| # jede zelle hat 8 nachbarzellen | |
| # zelle überlebt in nächster generation mit 2 oder 3 nachbarn | |
| # bei weniger als 2 oder mehr als 3 nachbarn stirbt zelle | |
| import random | |
| überleben = {0 : False, | |
| 1 : False, | |
| 2 : True, | |
| 3 : True, | |
| 4 : False, | |
| 5 : False, | |
| 6 : False, | |
| 7 : False, | |
| 8 : False, | |
| } | |
| breite = 8 | |
| höhe = 8 | |
| spielfeld = [[False for x in range(breite)] | |
| for y in range(höhe)] | |
| #print(spielfeld) | |
| def anzeige(spielfeld): | |
| for zeile in spielfeld: | |
| print("".join(["*" if x else "." for x in zeile])) | |
| def zufallsfüllung(wahrscheinlichkeit=0.22): | |
| for y, zeile in enumerate(spielfeld): | |
| for x, zelle in enumerate(zeile): | |
| if random.random() < wahrscheinlichkeit: | |
| spielfeld[y][x] = True | |
| def zähle_nachbarn(zeile, spalte): | |
| nachbarn = 0 | |
| for dx in (-1, 0, 1): | |
| for dy in (-1, 0, 1): | |
| if dx == 0 and dy == 0: | |
| continue | |
| if (zeile+dy < 0) or (spalte + dx < 0): | |
| continue | |
| if (zeile+dy >= höhe) or (spalte+dx >=breite): | |
| continue | |
| if spielfeld[zeile+dy][spalte+dx]: | |
| nachbarn += 1 | |
| return nachbarn | |
| def zähle_nachbarn_2(zeile, spalte): | |
| nachbarn = 0 | |
| for dx,dy in ((-1,-1), | |
| (-1,0), | |
| (-1,1,), | |
| (0,-1), | |
| (0,1), | |
| (1,-1), | |
| (1,0), | |
| (1,1)): | |
| if spielfeld[zeile+dy][spalte+dx]: | |
| nachbarn +=1 | |
| return nachbarn | |
| def berechnung(): | |
| neues_spielfeld = [[False for x in range(breite)] | |
| for y in range(höhe)] | |
| for y, zeile in enumerate(spielfeld): | |
| for x, zelle in enumerate(zeile): | |
| nachbarn = zähle_nachbarn(y,x) | |
| if überleben[nachbarn]: | |
| neues_spielfeld[y][x] = True | |
| return neues_spielfeld | |
| zufallsfüllung() | |
| anzeige(spielfeld) | |
| while True: | |
| kommando = input("Enter zum weitermachen oder X") | |
| if kommando == "X": | |
| break | |
| spielfeld = berechnung() | |
| anzeige(spielfeld) | |
| print("bye-bye") |
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
| # progroamm bekommt eine integer zahl | |
| # soll einen string zurück geben mit dem deutschen | |
| # namen der zahl | |
| # bsp | |
| # 123 -> "Einhunderdreiundzwanzig" | |
| zahlen = {0:"Null", | |
| 1:"eins", | |
| 2:"zwei", | |
| 3:"drei", | |
| 4:"vier", | |
| 5:"fünf", | |
| 6:"sechs", | |
| 7:"sieben", | |
| 8:"acht", | |
| 9:"neun", | |
| } | |
| def umwandeln(integerzahl): | |
| return "Keine Ahnung" | |
| zahl = int(input("Bitte eine Zahl eingeben")) | |
| ergebnis = umwandeln(zahl) | |
| print(ergebnis) |
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
| # progroamm bekommt eine integer zahl | |
| # soll einen string zurück geben mit dem deutschen | |
| # namen der zahl | |
| # bsp | |
| # 123 -> "Einhunderdreiundzwanzig" | |
| def umwandeln(integerzahl): | |
| zahlen = {0:"Null",1:"eins", | |
| 2:"zwei", | |
| 3:"drei", | |
| 4:"vier", | |
| 5:"fünf", | |
| 6:"sechs", | |
| 7:"sieben", | |
| 8:"acht", | |
| 9:"neun", | |
| 10:"zehn", | |
| 11:"elf", | |
| 12:"zwölf", | |
| 13:"dreizehn", | |
| 14:"vierzehn", | |
| 15:"fünfzehn", | |
| 16:"sechzehn", | |
| 17:"siebzehn", | |
| 18:"achtzehn", | |
| 19:"neunzehn", | |
| } | |
| zehnerzahlen = { | |
| 20:"zwanzig", | |
| 30:"dreißig", | |
| 40:"vierzig", | |
| 50:"fünfzig", | |
| 60:"sechzig", | |
| 70:"siebzig", | |
| 80:"achtzig", | |
| 90:"neunzig", | |
| 100:"hundert", | |
| } | |
| if integerzahl in zahlen: | |
| return zahlen[integerzahl] | |
| if integerzahl < 100: | |
| # integerzahl ist größer als 19 | |
| if integerzahl in zehnerzahlen: | |
| return zehnerzahlen[integerzahl] | |
| # zahl muss zerlegt werden | |
| einerstelle = integerzahl % 10 | |
| zehnerstelle = integerzahl // 10 | |
| return zahlen[einerstelle] + " und " + zehnerzahlen[zehnerstelle*10] | |
| return "Keine Ahnung" | |
| zahl = int(input("Bitte eine Zahl eingeben")) | |
| ergebnis = umwandeln(zahl) | |
| print(ergebnis) |
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
| # progroamm bekommt eine integer zahl von 0 bis 1000 | |
| # soll einen string zurück geben mit dem deutschen | |
| # namen der zahl | |
| # bsp | |
| # 123 -> "Einhunderdreiundzwanzig" | |
| def umwandeln(integerzahl): | |
| zahlen = {0:"Null",1:"eins", | |
| 2:"zwei", | |
| 3:"drei", | |
| 4:"vier", | |
| 5:"fünf", | |
| 6:"sechs", | |
| 7:"sieben", | |
| 8:"acht", | |
| 9:"neun", | |
| 10:"zehn", | |
| 11:"elf", | |
| 12:"zwölf", | |
| 13:"dreizehn", | |
| 14:"vierzehn", | |
| 15:"fünfzehn", | |
| 16:"sechzehn", | |
| 17:"siebzehn", | |
| 18:"achtzehn", | |
| 19:"neunzehn", | |
| } | |
| zehnerzahlen = { | |
| 20:"zwanzig", | |
| 30:"dreißig", | |
| 40:"vierzig", | |
| 50:"fünfzig", | |
| 60:"sechzig", | |
| 70:"siebzig", | |
| 80:"achtzig", | |
| 90:"neunzig", | |
| 100:"hundert", | |
| } | |
| if integerzahl == 1: | |
| return "Eins" | |
| if integerzahl == 1000: | |
| return "Tausend" | |
| # zahl <= 19 | |
| if integerzahl in zahlen: | |
| return zahlen[integerzahl] | |
| # integerzahl ist größer als 19 | |
| if integerzahl in zehnerzahlen: | |
| return zehnerzahlen[integerzahl] | |
| if integerzahl <= 100: | |
| # zahl muss zerlegt werden | |
| einerstelle = integerzahl % 10 | |
| zehnerstelle = integerzahl // 10 | |
| return zahlen[einerstelle] + "und" + zehnerzahlen[zehnerstelle*10] | |
| # integerzahl ist größer als 100 | |
| hunderterstelle = int(str(integerzahl)[0]) | |
| zehnerstelle = int(str(integerzahl)[1]) | |
| einerstelle = int(str(integerzahl)[2]) | |
| # spezialfall "einhundert... anstatt einshundert..." | |
| if hunderterstelle == 1: | |
| resultat = "einhundert" | |
| else: | |
| resultat = zahlen[hunderterstelle]+"hundert" | |
| if zehnerstelle == 0: | |
| return resultat + zahlen[einerstelle] | |
| if zehnerstelle == 1: | |
| return resultat + zahlen[10+einerstelle] | |
| if einerstelle == 0: | |
| return resultat + zehnerzahlen[zehnerstelle*10] | |
| return resultat + zahlen[einerstelle] + "und" + zehnerzahlen[zehnerstelle*10] | |
| #zahl = int(input("Bitte eine Zahl eingeben")) | |
| #ergebnis = umwandeln(zahl) | |
| #print(ergebnis) | |
| for zahl in range(0, 1001): | |
| print(zahl, ":", umwandeln(zahl)) | |
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
| #alterspyramide mit pygal - erzeugt svg grafik | |
| import pygal | |
| ages = [(364381, 358443, 360172, 345848, 334895, 326914, 323053, 312576, 302015, 301277, 309874, 318295, 323396, 332736, 330759, 335267, 345096, 352685, 368067, 381521, 380145, 378724, 388045, 382303, 373469, 365184, 342869, 316928, 285137, 273553, 250861, 221358, 195884, 179321, 171010, 162594, 152221, 148843, 143013, 135887, 125824, 121493, 115913, 113738, 105612, 99596, 91609, 83917, 75688, 69538, 62999, 58864, 54593, 48818, 44739, 41096, 39169, 36321, 34284, 32330, 31437, 30661, 31332, 30334, 23600, 21999, 20187, 19075, 16574, 15091, 14977, 14171, 13687, 13155, 12558, 11600, 10827, 10436, 9851, 9794, 8787, 7993, 6901, 6422, 5506, 4839, 4144, 3433, 2936, 2615), | |
| (346205, 340570, 342668, 328475, 319010, 312898, 308153, 296752, 289639, 290466, 296190, 303871, 309886, 317436, 315487, 316696, 325772, 331694, 345815, 354696, 354899, 351727, 354579, 341702, 336421, 321116, 292261, 261874, 242407, 229488, 208939, 184147, 162662, 147361, 140424, 134336, 126929, 125404, 122764, 116004, 105590, 100813, 95021, 90950, 85036, 79391, 72952, 66022, 59326, 52716, 46582, 42772, 38509, 34048, 30887, 28053, 26152, 23931, 22039, 20677, 19869, 19026, 18757, 18308, 14458, 13685, 12942, 12323, 11033, 10183, 10628, 10803, 10655, 10482, 10202, 10166, 9939, 10138, 10007, 10174, 9997, 9465, 9028, 8806, 8450, 7941, 7253, 6698, 6267, 5773), | |
| (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 91, 412, 1319, 2984, 5816, 10053, 16045, 24240, 35066, 47828, 62384, 78916, 97822, 112738, 124414, 130658, 140789, 153951, 168560, 179996, 194471, 212006, 225209, 228886, 239690, 245974, 253459, 255455, 260715, 259980, 256481, 252222, 249467, 240268, 238465, 238167, 231361, 223832, 220459, 222512, 220099, 219301, 221322, 229783, 239336, 258360, 271151, 218063, 213461, 207617, 196227, 174615, 160855, 165410, 163070, 157379, 149698, 140570, 131785, 119936, 113751, 106989, 99294, 89097, 78413, 68174, 60592, 52189, 43375, 35469, 29648, 24575, 20863), | |
| (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 392, 1351, 3906, 7847, 12857, 19913, 29108, 42475, 58287, 74163, 90724, 108375, 125886, 141559, 148061, 152871, 159725, 171298, 183536, 196136, 210831, 228757, 238731, 239616, 250036, 251759, 259593, 261832, 264864, 264702, 264070, 258117, 253678, 245440, 241342, 239843, 232493, 226118, 221644, 223440, 219833, 219659, 221271, 227123, 232865, 250646, 261796, 210136, 201824, 193109, 181831, 159280, 145235, 145929, 140266, 133082, 124350, 114441, 104655, 93223, 85899, 78800, 72081, 62645, 53214, 44086, 38481, 32219, 26867, 21443, 16899, 13680, 11508), | |
| (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 5, 17, 15, 31, 34, 38, 35, 45, 299, 295, 218, 247, 252, 254, 222, 307, 316, 385, 416, 463, 557, 670, 830, 889, 1025, 1149, 1356, 1488, 1835, 1929, 2130, 2362, 2494, 2884, 3160, 3487, 3916, 4196, 4619, 5032, 5709, 6347, 7288, 8139, 9344, 11002, 12809, 11504, 11918, 12927, 13642, 13298, 14015, 15751, 17445, 18591, 19682, 20969, 21629, 22549, 23619, 25288, 26293, 27038, 27039, 27070, 27750, 27244, 25905, 24357, 22561, 21794, 20595), | |
| (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 0, 8, 21, 34, 49, 84, 97, 368, 401, 414, 557, 654, 631, 689, 698, 858, 1031, 1120, 1263, 1614, 1882, 2137, 2516, 2923, 3132, 3741, 4259, 4930, 5320, 5948, 6548, 7463, 8309, 9142, 10321, 11167, 12062, 13317, 15238, 16706, 18236, 20336, 23407, 27024, 32502, 37334, 34454, 38080, 41811, 44490, 45247, 46830, 53616, 58798, 63224, 66841, 71086, 73654, 77334, 82062, 87314, 92207, 94603, 94113, 92753, 93174, 91812, 87757, 84255, 79723, 77536, 74173), | |
| (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 11, 35, 137, 331, 803, 1580, 2361, 3632, 4866, 6849, 8754, 10422, 12316, 14152, 16911, 19788, 22822, 27329, 31547, 35711, 38932, 42956, 46466, 49983, 52885, 55178, 56549, 57632, 57770, 57427, 56348, 55593, 55554, 53266, 51084, 49342, 48555, 47067, 45789, 44988, 44624, 44238, 46267, 46203, 36964, 33866, 31701, 28770, 25174, 22702, 21934, 20638, 19051, 17073, 15381, 13736, 11690, 10368, 9350, 8375, 7063, 6006, 5044, 4030, 3420, 2612, 2006, 1709, 1264, 1018), | |
| (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 11, 20, 68, 179, 480, 1077, 2094, 3581, 5151, 7047, 9590, 12434, 15039, 17257, 19098, 21324, 24453, 27813, 32316, 37281, 43597, 49647, 53559, 58888, 62375, 67219, 70956, 73547, 74904, 75994, 76224, 74979, 72064, 70330, 68944, 66527, 63073, 60899, 60968, 58756, 57647, 56301, 57246, 57068, 59027, 59187, 47549, 44425, 40976, 38077, 32904, 29431, 29491, 28020, 26086, 24069, 21742, 19498, 17400, 15738, 14451, 13107, 11568, 10171, 8530, 7273, 6488, 5372, 4499, 3691, 3259, 2657)] | |
| types = ['Males single', 'Females single', | |
| 'Males married', 'Females married', | |
| 'Males widowed', 'Females widowed', | |
| 'Males divorced', 'Females divorced'] | |
| pyramid_chart = pygal.Pyramid(human_readable=True, legend_at_bottom=True) | |
| pyramid_chart.title = 'England population by age in 2010 (source: ons.gov.uk)' | |
| pyramid_chart.x_labels = map(lambda x: str(x) if not x % 5 else '', range(90)) | |
| for type, age in zip(types, ages): | |
| pyramid_chart.add(type, age) | |
| #pyramid_chart.render() | |
| pyramid_chart.render_to_file('pyramide_eins.svg') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment