Esempio n. 1
0
def caesar_generator(num, op):
    """Returns a one-argument Caesar cipher function. The function should "rotate" a
    letter by an integer amount 'num' using an operation 'op' (either add or
    sub).

    You may use the provided `letter_to_num` and `num_to_letter` functions,
    which will map all lowercase letters a-z to 0-25 and all uppercase letters
    A-Z to 26-51.

    >>> letter_to_num('a')
    0
    >>> letter_to_num('c')
    2
    >>> num_to_letter(3)
    'd'

    >>> caesar2 = caesar_generator(2, add)
    >>> caesar2('a')
    'c'
    >>> brutus3 = caesar_generator(3, sub)
    >>> brutus3('d')
    'a'
    """
    "*** YOUR CODE HERE ***"
    return lambda x: num_to_letter(op(letter_to_num(x), num))
Esempio n. 2
0
def caesar_generator(num, op):
    """Returns a one-argument Caesar cipher function. The function should "rotate" a
    letter by an integer amount 'num' using an operation 'op' (either add or
    sub).

    You may use the provided `letter_to_num` and `num_to_letter` functions,
    which will map all lowercase letters a-z to 0-25 and all uppercase letters
    A-Z to 26-51.

    >>> letter_to_num('a')
    0
    >>> letter_to_num('c')
    2
    >>> num_to_letter(3)
    'd'

    >>> caesar2 = caesar_generator(2, add)
    >>> caesar2('a')
    'c'
    >>> brutus3 = caesar_generator(3, sub)
    >>> brutus3('d')
    'a'
    """
    "*** YOUR CODE HERE ***"
    return lambda x: num_to_letter(op(letter_to_num(x), num)) 
Esempio n. 3
0
    def __init__(self, start_values, word_list, alphabet=lowercase_letters):
        self.solution = np.empty_like(start_values)
        self.word_list = word_list

        h, w = start_values.shape
        self.start_letters = set()

        self.tiles = np.ones((h, w, len(lowercase_letters)))

        for (y, x), letter in np.ndenumerate(start_values):
            if letter:
                i = letter_to_num(letter)
                self.solve_tile(x, y, i)
                self.start_letters.add((x, y, i))
Esempio n. 4
0
def test_letter_to_num():
    assert utils.letter_to_num('b') == 1

    # test that a numerical input will raise an error
    with pytest.raises(TypeError):
        utils.letter_to_num(6)
Esempio n. 5
0
 def caesar(x):
     return num_to_letter(op(letter_to_num(x), num))
Esempio n. 6
0
 def caesar(x):
     return num_to_letter(op(letter_to_num(x), num))
Esempio n. 7
0
 def inner(letter):
     return num_to_letter(op(letter_to_num(letter), num))