fork download
  1. # -*- coding: utf-8 -*-
  2.  
  3. import random
  4.  
  5. keyboard = [u"йцукенгшщзхъ",
  6. u"фывапролджэ",
  7. u"ячсмитьбю"]
  8.  
  9. def find_character(x):
  10. for row in range(len(keyboard)):
  11. for column in range(len(keyboard[row])):
  12. if x == keyboard[row][column]:
  13. return [row, column]
  14. return None
  15.  
  16. def within_keyboard(row, column):
  17. return 0 <= row < len(keyboard) and 0 <= column < len(keyboard[row])
  18.  
  19. def get_variants(x):
  20. directions = [(0, 1), (1, 0), (0, -1), (-1, 0),
  21. (1, 1), (-1, 1), (-1, -1), (1, -1)] + [(0, 0)] * 25
  22. cell = find_character(x)
  23. if cell == None:
  24. return []
  25. else:
  26. [row, column] = cell
  27. return [keyboard[row + x][column + y]
  28. for (x, y) in directions
  29. if within_keyboard(row + x, column + y)]
  30.  
  31. def mobilify_character(x):
  32. variants = get_variants(x)
  33. if variants == []:
  34. return x
  35. else:
  36. return variants[random.randint(0, len(variants) - 1)]
  37.  
  38. def mobilka(text):
  39. return ''.join([mobilify_character(x) for x in text])
  40.  
  41. print mobilka(u"в плюсах и дишке удобно сделано это")
  42.  
Runtime error #stdin #stdout #stderr 0.03s 10608KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "prog.py", line 41, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0432' in position 0: ordinal not in range(128)