2

我试过win.inch(y,x)and win.instr(y,x),甚至win.getch()and win.getkey()。没有人能达到侦探的效果?我已经通过stackoverflow和google进行了搜索,但到目前为止我还没有找到解决方案。我已经阅读了python的curses手册。但仍然无法解决这个问题。

我的代码:

import curses

stdscr = curses.initscr()
stdscr.addstr(1,1,'x')
if stdscr.inch(1,1) == 'x':
    stdscr.addstr(2,1,'success')
    stdscr.refresh()

stdscr.getch()
curses.endwin()

我已经运行了这段代码,但屏幕上没有显示“成功”。昨晚我调试了 4 个小时的代码。而且我确定我被这个价值判断主张“如果stdscr.inch(1,1,) == 'x':”所困扰。我怎样才能实现我的目的,即查看某个坐标处是否有特定的字符串,然后执行相应的操作?

4

1 回答 1

3

curses.window.inch返回一个int,而不是一个str

以下行:

if stdscr.inch(1, 1) == 'x':

应该:

if stdscr.inch(1, 1) & 0xff == ord('x'):

或使用instr(不指定长度,instr返回从给定位置开始到行尾的字符串):

if stdscr.instr(1, 1, 1) == 'x':
于 2014-02-14T08:38:28.650 回答