brown — коричневый пояс (аналогично обозначению сложности для задач).
start: картинка — инвертированная Microsoft Tag метка.
0.00001234: гуглим что-нибудь вроде «bitcoin address generator», попадаем на brainwallet.org, получаем адрес кошелька для слова «javascript», потом идём сюда и смотрим историю транзанций.
wi-fi: идём в гуглопереводчик, гуглим результат, находим статью в вики про wi-fi.
edison: ищем в гугле источник этой картинки, находим статью про Теслу. Вспоминаем, кто был его главным конкурентом.
Да, но мы определили лишь соответствие чисел от 0 до 26 некоторым буквам. Любое другое число просто выходит за рамки условия задачи. Хотя в целом вы правы, python поддерживает отрицательные индексы, и сложение можно просто убрать.
prepval(value) можно заменить на enumerate(value).
range(0, x) эквивалентно range(x).
Плюс вы упростили исходную задачу, предположив, что мы используем ASCII (это следует из того, что номер символа вы получаете с помощью ord, а не из словаря d).
Мой вариант:
# -*- coding: utf-8 -*-
from itertools import cycle, count
from functools import partial
def get_cypher(my_ord, my_chr, al_size):
def process(func, value, key):
key = cycle(map(my_ord, key))
value = map(my_ord, value)
result = map(func, zip(value, key))
return ''.join(map(my_chr, result))
encrypt = lambda x: (x[0] + x[1]) % al_size
decrypt = lambda x: (x[0] - x[1] + al_size) % al_size
return partial(process, encrypt), partial(process, decrypt)
# Используем ASCII в качестве алфавита
encrypt, decrypt = get_cypher(ord, chr, 256)
# Либо предоставляем свой словарь d
d = map(chr, range(128))
rd = dict(zip(d, count()))
encrypt, decrypt = get_cypher(rd.get, d.__getitem__, len(d))
start: картинка — инвертированная Microsoft Tag метка.
0.00001234: гуглим что-нибудь вроде «bitcoin address generator», попадаем на brainwallet.org, получаем адрес кошелька для слова «javascript», потом идём сюда и смотрим историю транзанций.
wi-fi: идём в гуглопереводчик, гуглим результат, находим статью в вики про wi-fi.
edison: ищем в гугле источник этой картинки, находим статью про Теслу. Вспоминаем, кто был его главным конкурентом.
cisco
>> Композитор
john williams
>> Самое первое предложение
dell r210 ssd
>> Самый крупный город
jakarta
>> Какого ???? не хватает?
brown
>> Что это за бактерии?
start
>> Король Георг ?? с неодобрением смотрит на три пред-предыдущих ответа, сколько чего будет если он их оденет?
110ohm
>> Сколько денег у меня украли?
0.00001234
>> Какой-то странный вопрос!
>> О боже, что это!?
42 и chto eto?
Интересно только, почему на второй вопрос приходится сразу два ответа.
>> На нем пишут, его можно пить и это не остров. Что это?
coffeescript
>> О чем речь?
wi-fi
>> Главный конкурент
edison
range(0, x) эквивалентно range(x).
Плюс вы упростили исходную задачу, предположив, что мы используем ASCII (это следует из того, что номер символа вы получаете с помощью ord, а не из словаря d).
Мой вариант: