如何在python中使用try-and-except捕获空用户输入?
我试图弄清楚如何使用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:
#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')