Прикреплённый файл «re_dumbcode.py»
Загрузка 1 #!/usr/bin/env python
2 # coding: utf
3 '''
4 «Шифр». Во введённом тексте заменить буквы так, чтобы слова продолжали читаться, но были непонятными. Например, подставлять вместо каждой гласной другую гласную, звонкую согласную превращать в глухую и т. п. Написать шифратор и дешифратор (если он не совпадает с шифратором). Почитать вслух шифровки :)
5 '''
6
7 import re, sys
8
9 Code=u"""
10 аоуыэ -> яеиёю
11 яёюие -> ла лы лу лэ ло
12 бпфв -> сзтд
13 сзтд -> бпвф
14 кхгц -> шжчщ
15 шжчщ -> кхгц
16 рмн -> нмр
17 лйъь -> ля ли лё лю
18 """.strip() # без переводов строки
19
20 # Преобразуем к виду [ [строка, строка], ...]
21 Codeset=[re.split(" *-> *",s) for s in Code.split("\n")]
22 # Перобразуем к виду [(буква, замена), ...]
23 # используется «вытягивание списка», ср.
24 # [range(-1,l) for l in range(4)]
25 # и [e for l in range(4) for e in range(-1,l)]
26 Codeset=[el for k,v in Codeset for el in zip(k, (" " in v and v.split() or v))]
27
28 Coder=dict(Codeset)
29 Decoder=dict(((b,a) for a,b in Codeset))
30 Codelist,Decodelist=zip(*Codeset)
31 if len(sys.argv)<2: # Coder
32 reCoder=re.compile("("+"|".join(Codelist)+")")
33 source=sys.stdin.read()
34 pre=reCoder.split(source.decode("utf"))
35 post=""
36 while len(pre)>1:
37 n,r=pre.pop(0),pre.pop(0)
38 post+=n+Coder[r]
39 print post.encode("utf")
40 else:
41 reCoder=re.compile("("+"|".join(Decodelist)+")")
42 source=sys.stdin.read()
43 pre=reCoder.split(source.decode("utf"))
44 post=""
45 while len(pre)>1:
46 n,r=pre.pop(0),pre.pop(0)
47 post+=n+Decoder[r]
48 print post.encode("utf")
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2012-02-28 20:46:38, 1.0 KB) [[attachment:ray_calc.py]]
- [получить | показать] (2012-02-29 14:38:26, 3.3 KB) [[attachment:re_calc.py]]
- [получить | показать] (2012-02-29 14:38:43, 1.9 KB) [[attachment:re_dumbcode.py]]
- [получить | показать] (2012-02-29 14:37:35, 2.6 KB) [[attachment:re_year.py]]
Вам нельзя прикреплять файлы к этой странице.