在python中利用try..except来代替if..else的用法


Posted in Python onDecember 19, 2019

在有些情况下,利用try…except来捕捉异常可以起到代替if…else的作用。

比如在判断一个链表是否存在环的leetcode题目中,初始代码是这样的

# Definition for singly-linked list.
# class ListNode(object):
#   def __init__(self, x):
#     self.val = x
#     self.next = None

class Solution(object):
  def hasCycle(self, head):
    """
    :type head: ListNode
    :rtype: bool
    """
    if head == None:
      return False
    slow =  head
    fast = head.next
    while(fast and slow!=fast):
      slow = slow.next
      if fast.next ==None:
        return False
      fast = fast.next.next
    return fast !=None

在 while循环内部,fast指针每次向前走两步,这时候我们就要判断fast的next指针是否为None,不然对fast.next再调用next指针的时候就会报异常,这个异常出现也反过来说明链表不存在环,就可以return False。

所以可以把while代码放到一个try …except中,一旦出现异常就return。这是一个比较好的思路,在以后写代码的时候可以考虑替换某些if…else语句减少不必要的判断,也使得代码变的更简洁。

修改后的代码

# Definition for singly-linked list.
# class ListNode(object):
#   def __init__(self, x):
#     self.val = x
#     self.next = None

class Solution(object):
  def hasCycle(self, head):
    """
    :type head: ListNode
    :rtype: bool
    """
    if head == None:
      return False
    slow =  head
    fast = head.next
    try:
      while(fast and slow!=fast):
        slow = slow.next
        fast = fast.next.next
      return fast !=None
    except:
      return False

以上这篇在python中利用try..except来代替if..else的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python文件和目录操作函数小结
Jul 11 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
Jun 17 Python
python如何实现异步调用函数执行
Jul 08 Python
在VS2017中用C#调用python脚本的实现
Jul 31 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
Python 正则表达式爬虫使用案例解析
Sep 23 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
python将音频进行变速的操作方法
Apr 08 Python
Django xadmin安装及使用详解
Oct 26 Python
python异常中else的实例用法
Jun 15 Python
Python字符串的修改方法实例
Dec 19 #Python
python中property和setter装饰器用法
Dec 19 #Python
python装饰器代替set get方法实例
Dec 19 #Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 #Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 #Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 #Python
Python监控服务器实用工具psutil使用解析
Dec 19 #Python
You might like
新闻分类录入、显示系统
2006/10/09 PHP
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
php数据访问之增删改查操作
2016/05/09 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
js 页面元素的几个用法总结
2013/11/18 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
javascript如何实现create方法
2019/11/04 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
js实现左右轮播图
2020/01/09 Javascript
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
Python实例之wxpython中Frame使用方法
2014/06/09 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
Python extract及contains方法代码实例
2020/09/11 Python
如何利用python生成MD5并去重
2020/12/07 Python
Python Pygame实现俄罗斯方块
2021/02/19 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年协会工作总结
2014/11/22 职场文书
2015年会计工作总结范文
2015/05/26 职场文书
幼儿园大班教师评语
2019/06/21 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书