获取用户输入

对于一个应用来说,仅有输出是不完整的,能够获取输入并产生相应的输出才是一个完整的应用。在Curses库中,常用.getch()函数来获得用户输入的字符,这个函数会返回用户按下的键相对应的ASCII码值,其中包括PAGE UPPAGE DOWNShift等键都有对应的整数值。

根据窗口是否调用了.nodelay(flag)方法,.getch()方法会有阻塞和非阻塞两种工作方式。在阻塞模式下,应用会停下来等待用户输入;而在非阻塞模式下,如果获取不到用户的输入,.getch()会返回-1

具体使用可见以下示例:

import curses

stdscr = curses.init_scr()
curses.noecho()
stdscr.nodelay(False) # 使用阻塞模式

while True:
	key = stdscr.getch()
	if key == ord('a'):
		pass
	if key == ord('q'):
		break

curses.echo()
curses.endwin()

Curses库还提供了.getstr()函数,但是该函数的使用限制较多,一般并不推荐使用。