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

Hug*_*aig 1 python try-except

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

try:
    #user input here. integer input 
except ValueError:
    #print statement saying empty string.
Run Code Online (Sandbox Code Playgroud)

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

aba*_*ert 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)
Run Code Online (Sandbox Code Playgroud)

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

如果是这样,开辟您的交互式解释,并看看会发生什么,当你喜欢的类型的东西int('2'),int('abc'),int(''),等等,答案应该是很明显的.

但是,你如何区分空字符串与不同的字符串?简单:只需在user_input = input()之前执行try,并检查是否user_input为空except.(你把if语句中except处理所有的时间在真正的代码,例如,以区分OSErrorEINTR errno来自一个具有不同的errno.)