2017-06-17 51 views
0

我想从stdin中使用这个函数获取一个字符,并且raw_input在我输入后不会结束提示。我可以根据需要多次进入,并且不会移动到下一行。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.

我使用python 2.7.12在Ubuntu 16.04。

回答

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' 
>>> 

这不正是我所期望的。你会得到不同的结果(如果是这样,什么?),或者你期望别的什么(如果是的话,又是什么?)。这并不完全清楚你的意思是“在我进入后不会结束提示”。如果您希望函数仅在响应提示时按回车键返回,则此行为

if len(u_Input) == 1: 

需要更改。如果您刚刚输入,则len(u_Input)将为零。

+0

...发现错误。我输入了一个值,导致程序跳出一个while循环,而不是在需要时退出。感谢您的帮助! – Kris