"bob gailer" <[email protected]> wrote in message
news:[email protected]...
On 2/20/2010 5:52 AM, Paul Whittaker wrote:
Using the following script, the (Windows 7) PC echoes the key presses
but doesn't quit (ever!)
import msvcrt
print('Press SPACE to stop...')
while True:
k = msvcrt.getch() # Strangely, this echoes to the IDLE window
if k == ' ': # Not recognized
break
According to the docs: "msvcrt.getch() - Read a keypress and return the
resulting character....This call will block if a keypress is not already
available, but will not wait for Enter to be pressed. If the pressed key
was a special function key, this will return '\000' or '\xe0'; the next
call will return the keycode. The Control-C keypress cannot be read with
this function."
IOW - getch always returns 1 character.
You are testing for a 0 length string. Will never happen.
What keystroke do you want to break the loop?
To Bob: There is a space between the quotes.
To the OP: Are you running from a console window? The code works fine for
me from the console, but running under both IDLE and PythonWin
msvcrt.getch() returns 255 immediately. Windows applications without a
console usually don't play nice with C I/O calls.
-Mark
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor