Joaquim Santos wrote:

 - How can I make this "Human readable"? ... Print the letters in just one
(or more) lines and maybe replace the " for spaces (This one I suppose it
could/should be done with whitespaces() or just making a loop to check and
change those for ' '.)


Firstly, you should not directly print anything in the function. You should always separate *functionality* from *presentation*. The function should do the job of doing the Caesar shift, and should return a string. This allows the caller to store the result in a variable for further work. Presentation should be handled by the caller, often (but not always) by using print.

So you should accumulate each character into a list, then when done combine all the characters together into a string using ''.join(the_list), and finally return the string.

Secondly, Caesar decryption should wrap around -- that is, it should only apply to letters A...Z and only produce letters A...Z, and likewise for lowercase. Anything not a letter shouldn't be shifted.

So it isn't enough to just add the shift to the letter. E.g. 'z' shifted by 1 gives '{', but needs to be 'a'.

If you have trouble implementing these two concepts, don't hesitate to ask for additional hints and suggestions.



--
Steven
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to