Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 4, 2016 16:34:27

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

 i = raw_input('',)
Тоже ожидает ввода.

Офлайн

#2 Апрель 4, 2016 16:54:23

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

Может вы уже напишите что вы хотите? А то мало того что за вас код пишем так еще и должны угадывать что же вы имели в виду?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Апрель 4, 2016 17:24:11

sewer_in
Зарегистрирован: 2015-11-12
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

Попробуйте модуль msvcrt.

import msvcrt
#Потом например так
msvcrt.getwch()

Офлайн

#4 Апрель 4, 2016 21:03:55

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

sewer_in
Попробуйте модуль msvcrt.
Тоже ожидает ввода.

Офлайн

#5 Апрель 4, 2016 21:06:06

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

ZerG
Может вы уже напишите что вы хотите? А то мало того что за вас код пишем так еще и должны угадывать что же вы имели в виду?

Хочу чтобы программа не останавливалась, ожидая ввода пользователя, а проверила наличие символа в буфере клавиатуры и выполнялась дальше.

Офлайн

#6 Апрель 4, 2016 23:03:44

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

# -*- coding: utf-8 -*-
import time
import curses
ENTER_KEY = (curses.KEY_ENTER, ord('\n'), ord('\r'))
def run(win, timeout=1):  # timeout in seconds
    curses.echo()
    win.timeout(0)  # Non-block read.
    line = 0
    while True:
        win.addstr(line, 0, '')
        s = []
        start = time.time()
        run = True
        while run:
            c = win.getch()
            time_taken = time.time() - start
            if c < 0:
                pass
            elif c in ENTER_KEY:
                break
            else:
                s.append(chr(c))
            if time_taken >= timeout:
                # Out of time.
                s.append(-1)
                run = False
        if len(s) == 0:
            break
        if s[-1] == -1:
            s.pop()
        answer = ''.join(s)
        win.addstr(line + 1, 0, answer)
        line += 2
curses.wrapper(run)



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#7 Апрель 5, 2016 00:24:07

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

Ужос. Лучше на C сделаю. И под Windows надо искать правильную реализацию curses.

Офлайн

#8 Апрель 5, 2016 07:52:44

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

Cпасибо за прояснение этого странного вопроса.

Офлайн

#9 Апрель 5, 2016 07:56:42

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

Это не ужас а ваша лень!
Вам лень гуглить
Вам лень четко и точно описать задачу (есть мысль что вам вобще можно обойтись другим механизмом)
Первый предложенный вариант был наиболее правильным! Где вы нашли избыточность я не понял! Или вы думаете что на С вам не прийдется импортировать библиотеки?

Хозяин - барин короче.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#10 Апрель 5, 2016 19:09:07

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Проверить нажатие любой клавиши

alien308
а проверила наличие символа в буфере клавиатуры
alien308
Ужос. Лучше на C сделаю.
Ага :) интересно будет посмотреть как вы сделаете проверку буфера клавиатуры в многозадачной ОС. :)
Не морочте всем голову. Нужна работа по событиям - берете GUI нужен терминал - не жалуйтесь что он ждет ввода. Это его основное назначение.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version