2012-05-29 56 views
3

我有這樣的Python程序:Python 2.7.2,Cygwin,raw_input:爲什麼它只在給出輸入後纔打印提示?

import board 

theBoard = board.Board() 
theBoard.setup_new_game() 
theBoard.display() 

inputStr = raw_input('Enter move \"x y\":') 
print inputStr 

局是一類我寫的,它顯示的奧賽羅板。當我運行這個程序時,它立即停止並等待輸入。當我輸入內容並返回時,它會顯示該板並在其下方顯示輸入提示。

我是否需要使用curses和東西才能使其行爲正常,或者我只是缺少一些基本的東西?據我所知,這應該打印板,打印提示,然後等待我提供輸入。

回答

5

通常這是由於輸出未正確刷新。有時輸出驅動程序會等到實際上打印文本,直到出於效率原因需要出現爲止,但有時會導致這些問題。我不知道你正在使用的API刷新的確切接口,但應該很容易找到。

+2

賓果!非常感謝;我結束了在http://stackoverflow.com/questions/230751/how-to-flush-output-of-python-print,我用'sys.stdout = os.fdopen(sys.stdout.fileno(), 'w',0)'解決方案 – Almo

相關問題