我在64位Windows 7上运行python 2.7。
这是我正在执行的代码:
import sys
while True:
print 'please enter a character:'
c = sys.stdin.read(1)
print 'you entered', str(c)
在Eclipse的PyDev环境中,我得到以下输出,分别输入a和b。
please enter a character:
a
you entered a
please enter a character:
you entered
please enter a character:
you entered
please enter a character:
b
you entered b
please enter a character:
you entered
please enter a character:
you entered
please enter a character:
它正确地获取一次输入,然后执行两次以跳过用户输入。
现在,当我在python终端中为输入a和b运行相同的代码时,得到以下输出:
enter char
a
you entered a
enter char
you entered
enter char
b
you entered b
enter char
you entered
enter char
一旦获得用户输入并跳过用户输入,就会执行此操作。
是什么导致此问题?如何使Python无限循环一次读取一个字符?
最佳答案
问题可能是由于\n
持续存在而导致的stdin刷新。
或者,使用raw_input
while True:
c = raw_input('please enter a character: ')
print 'you entered', c
有关冲洗部分,请参见this