擅长:python、mysql、java
<p>您还可以使用<code>msvcrt.kbhit</code>函数来稍微优化一些内容,该函数将允许您仅在必要时调用<code>msvcrt.getch()</code>:</p>
<pre><code>while True:
if msvcrt.kbhit():
ch = msvcrt.getch()
if ch in '\x00\xe0': # arrow or function key prefix?
ch = msvcrt.getch() # second call returns the scan code
if ch == 'q':
print "Q was pressed"
elif ch == 'x':
sys.exit()
else:
print "Key Pressed:", ch
</code></pre>
<p>注意,打印的<code>Key Pressed</code>值对于函数键之类的东西没有意义。这是因为在这种情况下,它实际上是键的Windows<a href="http://msdn.microsoft.com/en-us/library/aa299374" rel="nofollow">scan code</a>,而不是字符的常规键代码。</p>