""" Truth tables """ leerzeichen = 4 # sollte mindestens 4 sein # Unicode-Nummern gefunden auf https://unicode-table.com/en/blocks/box-drawing/ vertikal = '\u2502' # '\uff5c' horizontal = '\u2500' # '\u23af' kreuzung = '\u253c' anzahlVariablen = int(input("Anzahl Variablen [1...9]: ")) UeberschriftVariablenTeil = "".join([f'{f"x{index + 1}":>{leerzeichen}}' for index in range(anzahlVariablen)]) UeberschriftLogikTeil = f"{'and':>{leerzeichen}}" + f"{'or':>{leerzeichen}}" + f"{'xor':>{leerzeichen}}" print(UeberschriftVariablenTeil + " " + vertikal + UeberschriftLogikTeil) print(horizontal * (len(UeberschriftVariablenTeil) + 1) + kreuzung + horizontal * len(UeberschriftLogikTeil)) for index in range(2 ** anzahlVariablen): binaer = f'{index:0{anzahlVariablen}b}' binearMitAbstand = "".join([""] + [f'{z:>{leerzeichen}}' for z in binaer]) # # ausführlich: # und = "1" if binaer.count("1") == anzahlVariablen else "0" # oder = "1" if binaer.count("1") > 0 else "0" # xOder = "1" if binaer.count("1") % 2 == 1 else "0" # print(binearMitAbstand + " vertikal" + f"{und:>{leerzeichen}}" + f"{oder:>{leerzeichen}}" + f"{xOder:>{leerzeichen}}") # kurz: print(binearMitAbstand + " " + vertikal + f"{binaer.count('1') == anzahlVariablen:>{leerzeichen}}" + f"{binaer.count('1') > 0:>{leerzeichen}}" + f"{binaer.count('1') % 2 == 1:>{leerzeichen}}")