Krypto_Grundlagen/utils/CipherUtils.py

32 lines
944 B
Python
Raw Normal View History

import AlphabetUtils as au
def calculate_frequency(text: str, fancy_printing: bool = False):
"""
Calculates the frequency of every letter in the german alphabet for the given text
:param text: The text to calculate the letter frequency for
:return: A list of frequencies, where index 0 contains the frequency of a in percent and so on.
"""
occurrence_count = [0 for i in range(26)]
for char in text:
if au.is_letter_of_alphabet(char):
char_index = au.get_index_of_letter(char)
occurrence_count[char_index] += 1
occurrence_frequency = []
for count in occurrence_count:
occurrence_frequency.append(count / len(text))
if fancy_printing:
for i in range(26):
print(f'{au.get_letter_at_index(i, True)}: {occurrence_frequency[i] * 100}%')
return occurrence_frequency
if __name__ == '__main__':
print(
calculate_frequency('Hier den Text eingeben, für den die Wahrscheinlichkeiten berechnet werden sollen', True))