# -*- coding: utf8 -*-

def paritaetsbit(bitfolge):
    """
    zu der 'bitfolge' wird
    das Paritätsbit berechnet
    """
    zaehler = 0
    for bit in bitfolge:
        if bit == '1':
            zaehler = zaehler + 1
    if zaehler%2 == 1:
        pBit = '1'
    else:
        pBit = '0'
    return pBit

from random import random
def bitfolgeManipulieren(bitfolge, fehlerwahrscheinlichkeit):
    bitfolgeNeu = ''
    for bit in bitfolge:
        zufallszahl = random()
        if zufallszahl < fehlerwahrscheinlichkeit:
            if bit == '0':
                bitNeu = '1'
            else:
                bitNeu = '0'
        else:
            bitNeu = bit
        bitfolgeNeu = bitfolgeNeu + bitNeu
    return bitfolgeNeu

# Test
fehlerwahrscheinlichkeit = 0.1
bitfolge = '01101010'
zusatzbit = paritaetsbit(bitfolge)
bitfolgeErweitert = bitfolge + zusatzbit
print(bitfolgeErweitert)
bitfolgeErweitertManipuliert = bitfolgeManipulieren(bitfolgeErweitert, fehlerwahrscheinlichkeit)
print(bitfolgeErweitertManipuliert)
bitfolgeNeu = bitfolgeErweitertManipuliert[0:8]
zusatzbitNeu = bitfolgeErweitertManipuliert[8:]
if paritaetsbit(bitfolgeNeu) == zusatzbitNeu:
    print('kein Fehler erkannt')
else:
    print('Fehler erkannt')
