""" def checkparity(value): return str((int(value[2]) + int(value[4]) + int(value[6]) + int(value[8])) % 2) + \ str((int(value[2]) + int(value[5]) + int(value[6])) % 2) + \ str((int(value[4]) + int(value[5]) + int(value[6])) % 2) + \ str((int(value[8])) % 2) """ def calcx(value, symbol): summed = 0 for val in value[0::2]: if val == symbol: summed += 0 else: summed += int(val) for val in value[1::2]: if val == symbol: pass else: summed += 3 * int(val) summed = (10 - (summed % 10)) return int(summed) """ a = '1010100000' bit = -1 bits = checkparity(a) print(a) print(bits) print() print(a[0] == bits[0]) print(a[1] == bits[1]) print(a[3] == bits[2]) print(a[7] == bits[3]) print() for x in range(4): print(a[2 ** x - 1] == bits[x]) if a[2 ** x - 1] == bits[x]: bit = x print() print(bit + 1) """ print() code = '244354166x685' print('Implizite Ziffer:', code[0]) print('Prüfziffer:', code[-1]) x = calcx(code, 'x') if calcx(code.replace('x', str(x)), 'x') % 10 == 0: print('x =', x) else: print('x =', int(x / 3))