do u know that part d' does not work ?
the actual key with your ciphers will be the second or 3rd one by distances while decrypting, so u get the wrong key, and can't really decrypt it "automaticly"
in question b. do we need that our dictionary also include results with only 4 digits after the dot(as in the example), or it doesnt matter (leave the entire floats as they are)?
האם בשאלה הזו יש הגבלה על זמן הריצה?
למשל בבדיקה על קבצי הטקסט ה"מוצפנים" שהוספתם לוקח לתכנית שלי לרוץ 5-10 שניות
האם זה בסדר? האם יוכלו לרדת נקודות על כך?
I'll answer this in general: at this stage of the course we expect efficient implementations, and may reduce points in cases where the code is extremely complex / inefficient.
So as a habit - you should always think whether there is a simple and straightforward way to improve your code simplicity / efficiency (these two are often at the expense of one another, as you have seen already).
If you think there is no such improvement (ot that there is a way to improve but it is complicated, error prone etc.) - then you are fine.
Should we check the input of every function (using assert) or should we conclude the given input is suitable?
שאלה 5 ב הפונקציה FREQUENCY :
האם זה משנה בבדיקה אם יצא לנו :
'c': 0.16666666666666666 למשל
רק את 3 ספרות הראשונות?
May I return the text with lower case, with no regard to the original case of each letter?
can someone please write here the command that we need to upload the text files? cipher1.txt, cipher2.txt
5.d- after decoding the cipher, the text contains special chars (such as /n). is that okay, or do we need to get rid of them?
is the k that the function returns the one used for deciphering or ciphering?