def decipher(self,string,keep_punct=False):
if not keep_punct: string = self.remove_punctuation(string)    <EOL>ret = '<STR_LIT>'<EOL>for c in string:<EOL><INDENT>if c.isalpha(): ret += self.i2a( self.a2i(c) - self.key )<EOL>else: ret += c<EOL><DEDENT>return ret<EOL>
r"""Decipher string using Caesar cipher according to initialised key.

        Example::

            plaintext = Caesar(3).decipher(ciphertext)     

        :param string: The string to decipher.
        :param keep_punct: if true, punctuation and spacing are retained. If false, it is all removed. Default is False. 
        :returns: The deciphered string.