在Python中处理if语句中的异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Python中处理if语句中的异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1354字,纯文字阅读大概需要2分钟。
内容图文
![在Python中处理if语句中的异常](/upload/InfoBanner/zyjiaocheng/726/63dbfdd2b8d74fa489ead75386efd6d2.jpg)
有没有办法处理if语句中的异常,除了试一试,除了整个批次之外的括号,或者提前测试每行的异常?
例如,假设我有简化的代码:
if a[0] == "a":
return("foo")
elif a[1] == "b":
return("bar")
elif a[5] == "d":
return("bar2")
elif a[2] == "c":
return("bar3")
else:
return("baz")
如果a是word_of_six_characters_or_more,这将正常工作.如果它是一个较短的单词,它会在行elif a [5] ==“d”上引发异常.显然有可能提前测试异常(例如将elif a [5] ==“d”改为elif len(a)> 5和a [5] ==“d”,然后依赖于第一部分是假的,因此第二个从未执行过).我的问题是,有没有其他方法可以将异常视为False并继续执行下一个elif语句而不是抛出异常 – 或类似地,在elif行中包含try except子句?
(显然,有可能没有办法,因此得到确认,加入例外的预测试是如何进行将是很好的知道).
(我应该注意,我的代码比上面的代码要复杂得多,虽然我可以进行预检,但是会有相当多的代码,所以只是试着看看是否有更简单的解决方案.)
解决方法:
好吧,有两种方法可以轻松处理这个问题.您可以对单个字符进行切片,如果该字符不存在,该字符将为空.例如.,
if a[0:1] == "a":
return("foo")
elif a[1:2] == "b":
return("bar")
elif a[5:6] == "d":
return("bar2")
elif a[2:3] == "c":
return("bar3")
else:
return("baz")
或者,您可以编写一个包装函数来忽略IndexErrors.例如.,
def get(obj, index):
try:
return obj[index]
except IndexError:
return
if get(a, 0) == "a":
return("foo")
elif get(a, 1) == "b":
return("bar")
elif get(a, 5) == "d":
return("bar2")
elif get(a, 2) == "c":
return("bar3")
else:
return("baz")
内容总结
以上是互联网集市为您收集整理的在Python中处理if语句中的异常全部内容,希望文章能够帮你解决在Python中处理if语句中的异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。