点击Enter后,Raw_Input没有结束提示

时间:2017-06-17 19:05:24

标签: python-2.7 raw-input

我正在尝试使用此函数从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

我还从this question.

获取了此代码

我在Ubuntu 16.04上使用python 2.7.12。

1 个答案:

答案 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)将为零。