输入结束后,Raw_Input没有在我按下回车键后结束提示符。

21 浏览
0 Comments

输入结束后,Raw_Input没有在我按下回车键后结束提示符。

我想使用这个函数从stdin中获取一个字符,但是使用raw_input函数,按下回车后提示符没有结束。我可以按下回车任意次数,它都不会进入下一行。

def userInput():
    print "你想要做什么?"
    while True:
            u_Input = raw_input(':')
            if len(u_Input) == 1:
                    break
            print '请只输入一个字符'
    return u_Input

我还从这个问题中获取了这段代码。

我在Ubuntu 16.04上使用的是Python 2.7.12版本。

0
0 Comments

问题原因:用户输入的值导致程序在while循环中跳出,并且在需要时没有重新进入循环。

解决方法:修改代码,使其在用户只是按下回车键时也能返回。

代码修改如下:

def userInput():
    print "What would you like to do?"
    while True:
        u_Input = raw_input(':')
        if len(u_Input) == 0:  # 修改此处条件
            break
        elif len(u_Input) == 1:
            break
        print 'Please enter only one character'
    return u_Input

这样修改后,即使用户只是按下回车键,函数也会返回空字符串。

0