alien308
Апрель 4, 2016 16:34:27
ZerG
Апрель 4, 2016 16:54:23
Может вы уже напишите что вы хотите? А то мало того что за вас код пишем так еще и должны угадывать что же вы имели в виду?
sewer_in
Апрель 4, 2016 17:24:11
Попробуйте модуль msvcrt.
import msvcrt
#Потом например так
msvcrt.getwch()
alien308
Апрель 4, 2016 21:03:55
sewer_in
Попробуйте модуль msvcrt.
Тоже ожидает ввода.
alien308
Апрель 4, 2016 21:06:06
ZerG
Может вы уже напишите что вы хотите? А то мало того что за вас код пишем так еще и должны угадывать что же вы имели в виду?
Хочу чтобы программа не останавливалась, ожидая ввода пользователя, а проверила наличие символа в буфере клавиатуры и выполнялась дальше.
ZerG
Апрель 4, 2016 23:03:44
# -*- 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)
alien308
Апрель 5, 2016 00:24:07
Ужос. Лучше на C сделаю. И под Windows надо искать правильную реализацию curses.
alien308
Апрель 5, 2016 07:52:44
Cпасибо за прояснение этого странного вопроса.
ZerG
Апрель 5, 2016 07:56:42
Это не ужас а ваша лень!
Вам лень гуглить
Вам лень четко и точно описать задачу (есть мысль что вам вобще можно обойтись другим механизмом)
Первый предложенный вариант был наиболее правильным! Где вы нашли избыточность я не понял! Или вы думаете что на С вам не прийдется импортировать библиотеки?
Хозяин - барин короче.
doza_and
Апрель 5, 2016 19:09:07
alien308
а проверила наличие символа в буфере клавиатуры
alien308
Ужос. Лучше на C сделаю.
Ага :) интересно будет посмотреть как вы сделаете проверку буфера клавиатуры в многозадачной ОС. :)
Не морочте всем голову. Нужна работа по событиям - берете GUI нужен терминал - не жалуйтесь что он ждет ввода. Это его основное назначение.