我已经尝试过win.inch(y,x)win.instr(y,x),甚至win.getch()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个小时的代码。而且我确定我被这个价值判断卡住了,声称“ if stdscr.inch(1,1,) == 'x':”。我如何实现查看坐标处是否存在特定字符串然后执行相应动作的目的?

最佳答案

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':

07-26 07:17