我是护士的新手,并在我的OSX Lion上尝试了一些python代码。我遇到了一个奇怪的错误,我不知道我做错了什么。我已经广泛搜索,即使在linux中也找不到类似的问题。我有选择地删除了行,看看其中一行是否也是一个问题。当我运行下面的代码时,我什么都没得到。没有菜单,我的终端搞砸了,如果我点击进入,你会看到我在下面的图片中看到的内容。我必须输入reset
才能使其再次正常运行。任何人都可以给我建议,或指向我的方向去看?我真的很感激。感谢。
脚本:
import curses
screen = curses.initscr() # Init curses
curses.noecho() # Suppress key output to screen
curses.curs_set(0) # remove cursor from screen
screen.keypad(1) # set mode when capturing keypresses
top_pos = 12
left_pos = 12
screen.addstr(top_pos, left_pos, "This is a String")
结果:
BTW,我在Lion中使用默认的python和libs,没有macports。我想使用本机库,如果可能的话, 。
答案 0 :(得分:5)
你有两个问题。
使用addstr将字符串添加到屏幕后,您不要告诉它刷新屏幕。在调用addstr:
之后添加此项screen.refresh()
您需要在程序结束时调用endwin()来重置终端。将其添加到程序的末尾:
curses.endwin()
也就是说,在运行程序后进行这两项更改之后,它似乎什么都不做,因为在屏幕上显示字符串后会弹出退出并将屏幕返回到运行程序之前的状态。
在调用endwin()之前添加它:
screen.getch()
然后它会在退出前等你按一个键。