X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=szyfrow%2Fcaesar.py;h=910ada2f456639160adad6ec4cbf3ad4e08ae567;hb=refs%2Fheads%2Fmain;hp=fbfe05086ec85e492f07ef5b4b1d665d0c75a55c;hpb=27c8005f6dea0026887b80a01b5f93a8f1b3c2b2;p=szyfrow.git

diff --git a/szyfrow/caesar.py b/szyfrow/caesar.py
index fbfe050..910ada2 100644
--- a/szyfrow/caesar.py
+++ b/szyfrow/caesar.py
@@ -1,8 +1,20 @@
+"""Enciphering and deciphering using the [Caesar cipher](https://en.wikipedia.org/wiki/Caesar_cipher). 
+Also attempts to break messages that use a Caesar cipher.
+
+The Caesar cipher operates one letter at a time. It converts each letter to a 
+number, then enciphers that number by adding the key. The result is taken mod 
+26 and converted back into a letter.
+
+"""
+
 from szyfrow.support.utilities import *
 from szyfrow.support.language_models import *
 
 def caesar_encipher_letter(accented_letter, shift):
-    """Encipher a letter, given a shift amount
+    """Encipher a letter, given a shift amount.
+
+    Accented version of latin letters (such as é and ö) are converted to their
+    non-accented versions before encryption.
 
     >>> caesar_encipher_letter('a', 1)
     'b'
@@ -91,6 +103,9 @@ def caesar_decipher(message, shift):
 def caesar_break(message, fitness=Pletters):
     """Breaks a Caesar cipher using frequency analysis
 
+    It tries all possible keys, scores the fitness of the text decipherd with 
+    each key, and returns the key that produces the most fit deciphered text.
+
     >>> caesar_break('ibxcsyorsaqcheyklxivoexlevmrimwxsfiqevvmihrsasrxliwyrh' \
           'ecjsppsamrkwleppfmergefifvmhixscsymjcsyqeoixlm') # doctest: +ELLIPSIS
     (4, -130.849989015...)