如何使用try和python捕获空用户输入?

时间:2013-10-25 02:12:14

标签: python try-except

我试图弄清楚如何使用try和except来捕获空用户输入。 如果你有这个例子:

try:
    #user input here. integer input 
except ValueError:
    #print statement saying empty string.

虽然我还需要捕获另一个值错误,以确保它们输入一个整数而不是字符或字符串,我怎么能使用if和elif设置来判断它是否为空字符串或str而不是int

2 个答案:

答案 0 :(得分:5)

如果你真的只想在空字符串上引发异常,你需要手动执行:

try:
    user_input = input() # raw_input in Python 2.x
    if not user_input:
        raise ValueError('empty string')
except ValueError as e:
    print(e)

但评论中的“整数输入”部分让我觉得你真正想要的是在整数以外的任何事情上引发异常,包括但不限于空字符串。

如果是这样,请打开您的互动口译员,看看当您输入int('2')int('abc')int('')等内容时会发生什么,答案应该非常明显。< / p>

但是,你怎么区分空字符串和不同的字符串呢?很简单:只需在user_input = input()之前执行try,然后检查user_inputexcept是否为空。 (您在if处理程序中始终将except语句放在实际代码中,例如,将OSErrorEINTR errno区分开来与不同的errno {{1}} {{1}}。)

答案 1 :(得分:0)

try:
    input = raw_input('input: ')
    if int(input):
        ......
except ValueError:
    if not input:
        raise ValueError('empty string')
    else:
        raise ValueError('not int')

试试这个,可以检测到空字符串和非字符串。下一次,具体问题。