Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!
0 Пользователей и 1 Гость просматривают эту тему.
С русскими буквами несложно, найду.А curses здесь конечно не нужны, мощности компа вполне хватает и на работу с ANSI.
#!/usr/bin/python# -*- coding: utf-8 -*-# Это я взял из вашего keyboard train unstable.py#try: import sys, tty, termios OS = 'linux'except ImportError: import msvcrt OS = 'windows'# Это я взял оттуда же#class _Getch: """ Gets a single character from standard input. Does not echo to the screen. From http://code.activestate.com/recipes/134892/ """ def __init__(self): if OS == 'windows': self.impl = _GetchWindows() elif OS == 'linux': self.impl = _GetchUnix() else: print 'This does not work on your system' def __call__(self): return self.impl() class _GetchUnix: def __call__(self): fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return ch class _GetchWindows: def __call__(self): return msvcrt.getch()getch = _Getch()# Ну, это совсем не по-питоновски, но я его толком и не знаю.# Главное, работает.#go_on = Truewhile go_on: print 'LET: ', lett = getch() if lett in ('\xD0', '\xD1'): lett = lett + getch() print lett if lett == 'q': go_on = False
if lett in ('\xD0', '\xD1'): lett = lett + getch()
keyboard train unstable.py:83: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal if answer == letter:
Просто личный опыт обучения.. Typing Reflex идеален. Если уже что и делать, то только подобный. Не напрягает долгими паузами и переходами от упражнения к упражнению как в Соло; нет таких убогих звуков, кричащих об ошибке и тыкающих пользователя каждый раз в ошибку, как в соло.Советую скачать и сделать ровно те же упражнения. Я благодаря ему только и научился печатать.
Код: (Python) [Выделить]if lett in ('\xD0', '\xD1'): lett = lett + getch() Это с чем Вы сравниваете?.. И зачем такое прибавление странное? Но на вид правда работает!...
print '\xD0\x90' -> Аprint '\xD0\x91' -> Б...print '\xD0\xAF' -> Яprint '\xD0\xB0' -> а...print '\xD0\xBF' -> пprint '\xD1\x80' -> р...print '\xD1\x8F' -> я;print '\xD0\x81' -> Ёprint '\xD1\x91' -> ё
>>> print '\xD0\x91'Б>>> print u'Б'Б>>> print u'Б' == '\xD0\x91'False>>> print 'Б'Б>>> print 'Б' == '\xD0\x91'True>>>
reload(sys)sys.setdefaultencoding('utf-8')
>>> print '\xD0\x91'.decode("utf-8") == u'Б'True>>>
Принципиальных сложностей быть не должно, проблемы могут возникать, вероятно,из-за смешивания raw_input() и sys.stdin.read()
Всё, увидел, просто не знал, как им пользоваться.Вроде, в unstable русский работает?Но ни код, ни stable не смотрел. Завтра.
Страница сгенерирована за 0.017 секунд. Запросов: 19.