我正在尝试使用此函数从stdin获取一个字符,并且在我按Enter后raw_input不会结束提示。我可以按照我的意愿多次输入,但它不会移动到下一行。
def userInput():
print "What would you like to do?"
while True:
u_Input = raw_input(':')
if len(u_Input) == 1:
break
print 'Please enter only one character'
return u_Input
获取了此代码
我在Ubuntu 16.04上使用python 2.7.12。
答案 0 :(得分:0)
如果我运行你的代码
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def userInput():
... print "What would you like to do?"
... while True:
... u_Input = raw_input(':')
... if len(u_Input) == 1:
... break
... print 'Please enter only one character'
... return u_Input
...
>>> userInput()
What would you like to do?
:53
Please enter only one character
:57
Please enter only one character
:a
'a'
>>>
它完全符合我的期望。你得到不同的结果(如果是,那是什么?)或者你期待别的什么(再次,如果是,那么?)。你打算输入后“不会结束提示”并不清楚你的意思。如果您希望在响应提示时仅按Enter键返回函数,则此行
if len(u_Input) == 1:
需要改变。如果您只是按Enter键,那么len(u_Input)
将为零。