import requests
encoded = requests.get("https://siscourses.ethz.ch/python_dbiol/data/encoded.txt").text
print(encoded[:100])
qhwxutj bet  lbce uht jwiifu hbpt  wpfqt cwn itrfeefer ub rtu ktjm ufjtl bg nfuufer im htj nfnutj be
DEFAULT_ORDER = "etaonhisrldwugfycbmkpvjqxz"

Three alternatives to create character histogram:

def symbol_histogram(text):
    """uses dict to compute mapping symbol -> number of occurences"""
    histogram = {}
    for symbol in text:
        if symbol not in histogram:
            histogram[symbol] = 0
        histogram[symbol] += 1
    return histogram


from collections import defaultdict

def symbol_histogram_2(text):
    """uses defatultdict"""
   
    histogram = defaultdict(int)
    for symbol in text:
        histogram[symbol] += 1
    return histogram


from collections import Counter

def symbol_histogram_3(text):
    """uses Counter"""
    return Counter(text)

assert symbol_histogram_3(encoded) == symbol_histogram(encoded)

import pprint
pprint.pprint(symbol_histogram(encoded))
{'\n': 41,
 ' ': 2043,
 'a': 187,
 'b': 507,
 'c': 195,
 'd': 76,
 'e': 409,
 'f': 397,
 'g': 119,
 'h': 433,
 'i': 111,
 'j': 325,
 'k': 47,
 'l': 288,
 'm': 119,
 'n': 361,
 'o': 2,
 'p': 310,
 'q': 113,
 'r': 139,
 's': 6,
 't': 763,
 'u': 644,
 'v': 2,
 'w': 511,
 'x': 91,
 'y': 2,
 'z': 108}
def rank_characters(text):
    histogram = symbol_histogram(text)
    
    # invert tuples:
    counts = [(count, symbol) for symbol, count in histogram.items()]
    
    # sorting tuples: first entry counts, then second entry:
    counts.sort(reverse=True)
    
    # unpack symbols from list of tuples and join them:
    return "".join([symbol for (__, symbol) in counts])

encoded_characters = encoded.replace("\n", "").replace(" ", "")
print(rank_characters(encoded_characters))
tuwbhefnjplcarmgqizxdksyvo
def compute_mapping(characters, english_order=DEFAULT_ORDER):
    ranked = rank_characters(characters)
    mapping = dict(zip(ranked, english_order))
    return mapping
print(compute_mapping(encoded_characters))
{'t': 'e', 'u': 't', 'w': 'a', 'b': 'o', 'h': 'n', 'e': 'h', 'f': 'i', 'n': 's', 'j': 'r', 'p': 'l', 'l': 'd', 'c': 'w', 'a': 'u', 'r': 'g', 'm': 'f', 'g': 'y', 'q': 'c', 'i': 'b', 'z': 'm', 'x': 'k', 'd': 'p', 'k': 'v', 's': 'j', 'y': 'q', 'v': 'x', 'o': 'z'}
def decypher(encoded, english_order=DEFAULT_ORDER):
    characters = encoded.replace(" ", "").replace("\n", "")
    mapping = compute_mapping(characters, english_order)
    decoded = [mapping.get(s, " ") for s in encoded]
    return "".join(decoded)
    

decyphered = decypher(encoded)
print(decyphered[:100])
cnakter ohe  dowh tne rabbit nole  alice was begihhihg to get verf tired oy sittihg bf ner sister oh
# look at the output, then swap n and h: (hole is nole, sitting is sittihg)
decyphered = decypher(encoded, "etaohnisrldwugfycbmkpvjqxz")
print(decyphered[:100])
chakter one  down the rabbit hole  alice was beginning to get verf tired oy sitting bf her sister on
# look at output, then swap f and y: (very / verf, of / oy)

decyphered = decypher(encoded, "etaohnisrldwugyfcbmkpvjqxz")
print(decyphered[:100])
chakter one  down the rabbit hole  alice was beginning to get very tired of sitting by her sister on
# look at output, then swap p and k: (chapter / chakter)

decyphered = decypher(encoded, "etaohnisrldwugyfcbmpkvjqxz")
print(decyphered)
chapter one  down the rabbit hole  alice was beginning to get very tired of sitting by her sister on the bank  and of having nothing to do  once or twice she had peeped into the book her sister was reading  but it had no pictures or conversations in it     and what is the use of a book     thought alice    without pictures or conversations      so she w as considering in her own mind  as well as she could  for the hot day made her feel very sleepy and stupid   whether the pleasure of making a daisy chain would be worth the troub le of getting up and picking the daisies  when suddenly a white rabbit with pink eyes ran close by her   there was nothing so very remarkable in that  nor did alice think it so very much out of the way to hear the rabbit say to itself     oh dear  oh dear  i shall be late      when she thought it over afterwards  it occurred to her that she ought to have wondered at this  but at the time it all seemed quite natural   but when the rabbit actually took a watch out of its waistcoat pocket  and looked at it  and then hurried on  alice started to her feet  for it flashed across her mind that she had never before seen a rabbit with either a waistcoat pocket  or a watch to take out of it  and burning with curiosity  she ran across the field after it  and fortunately was just in time to see it pop down a large rabbit hole under the hedge   in another moment down went alice after it  never once considering how in the world she was to get out again   the rabbit hole went straight on like a tunnel for some way  and then dipped suddenly down  so suddenly that alic e had not a moment to think about stopping herself before she found herself falling down a very deep well   either the well was very deep  or she fell very slowly  for she had pl enty of time as she went down to look about her and to wonder what was going to happen nezt  first  she tried to look down and make out what she was coming to  but it was too dar k to see anything  then she looked at the sides of the well  and noticed that they were filled with cupboards and book shelves  here and there she saw maps and pictures hung upon  pegs  she took down a jar from one of the shelves as she passed  it was labelled    orange marmalade     but to her great disappointment it was empty  she did not like to drop t he jar for fear of killing somebody  so managed to put it into one of the cupboards as she fell past it      well     thought alice to herself     after such a fall as this  i sh all think nothing of tumbling down stairs  how brave they   ll all think me at home  why  i wouldn   t say anything about it  even if i fell off the top of the house      which w as very likely true    down  down  down  would the fall never come to an end     i wonder how many miles i   ve fallen by this time     she said aloud     i must be getting somew here near the centre of the earth  let me see  that would be four thousand miles down  i think       for  you see  alice had learnt several things of this sort in her lessons in the schoolroom  and though this was not a very good opportunity for showing off her knowledge  as there was no one to listen to her  still it was good practice to say it over    yes  that   s about the right distance  but then i wonder what latitude or longitude i   ve got to      alice had no idea what latitude was  or longitude either  but thought t hey were nice grand words to say    presently she began again     i wonder if i shall fall right through the earth  how funny it   ll seem to come out among the people that walk with their heads downward  the antipathies  i think       she was rather glad there was no one listening  this time  as it didn   t sound at all the right word       but i shall have to ask them what the name of the country is  you know  please  ma   am  is this new xealand or australia      and she tried to curtsey as she spoke  fancy curtseying as you   re falling through the air  do you think you could manage it      and what an ignorant little girl she   ll think me for asking  no  it   ll never do to ask  perhaps i shall se e it written up somewhere      down  down  down  there was nothing else to do  so alice soon began talking again     dinah   ll miss me very much to night  i should think      di nah was the cat      i hope they   ll remember her saucer of milk at tea time  dinah my dear  i wish you were down here with me  there are no mice in the air  i   m afraid  but y ou might catch a bat  and that   s very like a mouse  you know  but do cats eat bats  i wonder     and here alice began to get rather sleepy  and went on saying to herself  in a dreamy sort of way     do cats eat bats  do cats eat bats     and sometimes     do bats eat cats     for  you see  as she couldn   t answer either question  it didn   t much matt er which way she put it  she felt that she was doxing off  and had just begun to dream that she was walking hand in hand with dinah  and saying to her very earnestly     now  din ah  tell me the truth   did you ever eat a bat     when suddenly  thump  thump  down she came upon a heap of sticks and dry leaves  and the fall was over   alice was not a bit hu rt  and she jumped up on to her feet in a moment  she looked up  but it was all dark overhead  before her was another long passage  and the white rabbit was still in sight  hurry ing down it  there was not a moment to be lost  away went alice like the wind  and was just in time to hear it say  as it turned a corner     oh my ears and whiskers  how late it    s getting     she was close behind it when she turned the corner  but the rabbit was no longer to be seen  she found herself in a long  low hall  which was lit up by a row of lamps hanging from the roof   there were doors all round the hall  but they were all locked  and when alice had been all the way down one side and up the other  trying every door   she walked sadly down the middle  wondering how she was ever to get out again   suddenly she came upon a little three legged table  all made of solid glass  there was nothing o n it ezcept a tiny golden key  and alice   s first thought was that it might belong to one of the doors of the hall  but  alas  either the locks were too large  or the key was to o small  but at any rate it would not open any of them  however  on the second time round  she came upon a low curtain she had not noticed before  and behind it was a little door  about fifteen inches high  she tried the little golden key in the lock  and to her great delight it fitted   alice opened the door and found that it led into a small passage  no t much larger than a rat hole  she knelt down and looked along the passage into the loveliest garden you ever saw  how she longed to get out of that dark hall  and wander about a mong those beds of bright flowers and those cool fountains  but she could not even get her head through the doorway     and even if my head would go through     thought poor alic e     it would be of very little use without my shoulders  oh  how i wish i could shut up like a telescope  i think i could  if i only knew how to begin     for  you see  so many  out of the way things had happened lately  that alice had begun to think that very few things indeed were really impossible   there seemed to be no use in waiting by the little door  so she went back to the table  half hoping she might find another key on it  or at any rate a book of rules for shutting people up like telescopes  this time she found a li ttle bottle on it      which certainly was not here before     said alice   and round the neck of the bottle was a paper label  with the words    drink me    beautifully printed on it in large letters   it was all very well to say    drink me     but the wise little alice was not going to do that in a hurry     no  i   ll look first     she said     and see whether it   s marked    poison    or not     for she had read several nice little histories about children who had got burnt  and eaten up by wild beasts and other unpleasan t things  all because they would not remember the simple rules their friends had taught them  such as  that a red hot poker will burn you if you hold it too long  and that if you  cut your finger very deeply with a knife  it usually bleeds  and she had never forgotten that  if you drink much from a bottle marked