Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用try-and-except捕获空用户输入?_Python_Try Except - Fatal编程技术网

如何在python中使用try-and-except捕获空用户输入?

如何在python中使用try-and-except捕获空用户输入?,python,try-except,Python,Try Except,我试图弄清楚如何使用try-and-except捕捉空的用户输入。 例如,如果您有: try: #user input here. integer input except ValueError: #print statement saying empty string. 虽然我还需要捕获另一个值错误,以确保他们输入的是整数而不是字符或字符串,但我如何使用if和elif设置来确定它是空字符串还是str而不是int如果您确实只想在空字符串上引发异常,则需要手动执行此操作: tr

我试图弄清楚如何使用try-and-except捕捉空的用户输入。 例如,如果您有:

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

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

如果您确实只想在空字符串上引发异常,则需要手动执行此操作:

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('')
,等等时会发生什么,答案应该很明显

但是,如何区分空字符串和其他字符串呢?简单:只需在
尝试之前执行
user\u input=input()
,然后检查
user\u input
中是否为空,除了
。(在真实代码中,您始终将
if
语句放在
中,但
处理程序除外,例如,将
OSError
EINTR
errno
区别开来)


尝试此操作,可以检测到空字符串和非int。下次,请具体说明问题。

欢迎来到StackOverflow!谢谢你发布你的代码,但是请在你的问题中多加一点描述:你有什么问题,你期望的结果是什么,到目前为止?仔细阅读这篇文章将有助于我们更好地回答你的问题。谢谢
try:
    input = raw_input('input: ')
    if int(input):
        ......
except ValueError:
    if not input:
        raise ValueError('empty string')
    else:
        raise ValueError('not int')