| New file |
| | |
| | | # Dezimal-Zahl in Binäre Zahl konvertieren |
| | | |
| | | n = input("Geben Sie eine natürliche Zahl ein! ") |
| | | n = int(n) |
| | | |
| | | d,r = divmod(n,2) |
| | | binary = f"{r}" |
| | | |
| | | while d > 0: |
| | | d,r = divmod(d,2) |
| | | binary = f"{r}{binary}" # hängt den Rest vor dem String-Representation |
| | | |
| | | print(binary) |
| | | |
| | | |
| | | |
| New file |
| | |
| | | def luhn(n:int): |
| | | d = n |
| | | luhn_checksum = 0 |
| | | while d != 0: |
| | | # Verarbeitung der Stelle 10^0, 10^2, 10^4,... |
| | | d,ungerade = divmod(d, 10) |
| | | luhn_checksum += ungerade |
| | | # Verarbeitung der Stelle 10^1, 10^2, 10^3,... |
| | | d,gerade = divmod(d, 10) |
| | | gerade *= 2 |
| | | if gerade > 9: gerade -= 9 |
| | | luhn_checksum += gerade |
| | | return luhn_checksum, luhn_checksum%10 == 0 |
| | | |
| | | |
| | | |
| | | n = int("371-4496-3539-8431".replace('-','')) |
| | | checksum, valid = luhn(n) |
| | | print(f"Luhn-checksum: {checksum}, gültig = {valid}") |
| New file |
| | |
| | | def print_seven(a, b): |
| | | n = a |
| | | # suche die erste Vielfach von 7 |
| | | # Maximum 6 Iterationen |
| | | #while n % 7 != 0: |
| | | # n += 1 |
| | | |
| | | # eine elegantere Berechnung von n: |
| | | n = a + (7 - a%7) if a % 7 != 0 else a |
| | | |
| | | # Gibt die Vielfach von 7 aus, schrittweit 7 |
| | | # Maximum (b-a)/7 iterationen |
| | | while n <= b: |
| | | print(n) |
| | | n += 7 |
| | | |
| | | |
| | | |
| | | a = input("Geben Sie eine natürliche Zahl ein! ") |
| | | a = int(a) |
| | | b = input(f"Geben Sie eine andere natürliche Zahl ein, die größer als {a} ist! ") |
| | | b = int(b) |
| | | |
| | | print_seven(a, b) |
| New file |
| | |
| | | import sys |
| | | |
| | | def wochentag(d:int, m:int, y:int) -> int: |
| | | y0 = y - (14 - m) // 12 |
| | | x = y0 + y0//4 - y0//100 + y0//400 |
| | | m0 = m + 12*( (14-m)//12 ) - 2 |
| | | return (d + x + (31*m0)//12) % 7 |
| | | |
| | | |
| | | def berechne_ueberhang_tage(wochentag:int) -> int: |
| | | """Nach Gepflogenheit in deutches Kalender-System fängt eine Woche mit Montag an. |
| | | |
| | | Mo -> Keinen Überhang; |
| | | Di -> 1 Überhang; |
| | | Mi -> 2 Überhange; |
| | | Do -> 3 Überhange; |
| | | Fr -> 4 Überhange; |
| | | Sa -> 5 Überhange; |
| | | So -> 6 Überhange |
| | | """ |
| | | return (wochentag - 1) % 7 |
| | | |
| | | |
| | | def ist_schaltjahr(y:int) -> bool: |
| | | return (y % 4 == 0) and ( (y%100 != 0) or (y%400 == 0) ) |
| | | |
| | | |
| | | def letzter_tag(m: int, y:int) -> int: |
| | | tage = [None, 31, 28, 31, 30, |
| | | 31, 30, 31, 31, |
| | | 30, 31, 30, 31] |
| | | if m != 2: return tage[m] |
| | | return 29 if ist_schaltjahr(y) else 28 |
| | | |
| | | |
| | | def print_kalender(m: int, y: int): |
| | | monaten = [None, |
| | | "Januar", "Februar", "März", "April", |
| | | "Mai", "Juni", "July", "August", |
| | | "September", "Oktober", "November", "Dezember"] |
| | | # Ausgabe des Monat und Jahr |
| | | print(f"{monaten[m]} {y}") |
| | | wochentage = ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"] |
| | | print(" ".join(wochentage)) |
| | | |
| | | # Ausgabe der Überhang von letzen Monat |
| | | erster_wochentag = wochentag(1, m, y) |
| | | ueberhang = berechne_ueberhang_tage(erster_wochentag) |
| | | spalten_breite = len(wochentage[0]) + 1 |
| | | ueberhang_zeichen = " "*(spalten_breite * ueberhang) |
| | | print(ueberhang_zeichen, end="") |
| | | |
| | | # Ausgabe des Kalenders |
| | | spalten_idx = ueberhang |
| | | tag = 1 |
| | | letzter_tag_im_monat = letzter_tag(m, y) |
| | | while tag <= letzter_tag_im_monat: |
| | | print(f"{tag:2d}", end=" ") |
| | | tag += 1 |
| | | spalten_idx += 1 |
| | | if spalten_idx % 7 == 0: print() |
| | | |
| | | |
| | | m, y = int(sys.argv[1]), int(sys.argv[2]) |
| | | print_kalender(m, y) |
| | | |
| | | print() |
| New file |
| | |
| | | American Express 378282246310005 |
| | | American Express 371449635398431 |
| | | American Express Corporate 378734493671000 |
| | | Diners Club 30569309025904 |
| | | Discover 6011111111111117 |
| | | Discover 6011000990139424 |
| | | JCB 3530111333300000 |
| | | JCB 3566002020360505 |
| | | MasterCard 2221000000000009 |
| | | MasterCard 2223000048400011 |
| | | MasterCard 2223016768739313 |
| | | MasterCard 5555555555554444 |
| | | MasterCard 5105105105105100 |
| | | Visa 4111111111111111 |
| | | Visa 4012888888881881 |
| | | Visa 4222222222222 |