我已尝试win.inch(y,x)
和win.instr(y,x)
,甚至win.getch()
和win.getkey()
。没有人能达到侦探效果吗?我搜索了stackoverflow和谷歌,但到目前为止我没有找到解决方案。我已经阅读了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'
:”。我怎么能意识到我的目的是看一个坐标上是否有一个特定的字符串然后做相应的动作?
答案 0 :(得分: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':