在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实现导出数据生成excel报表的方法示例
Jul 12 Python
Python tkinter事件高级用法实例
Jan 31 Python
分享Pycharm中一些不为人知的技巧
Apr 03 Python
Python实现的redis分布式锁功能示例
May 29 Python
python+PyQT实现系统桌面时钟
Jun 16 Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
python实现两个字典合并,两个list合并
Dec 02 Python
Python随机数函数代码实例解析
Feb 09 Python
快速了解Python开发环境Spyder
Jun 29 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
python 星号(*)的多种用途
Sep 21 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
php mysql数据库操作类
2008/06/04 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
PHP实现简单日历类编写
2020/08/28 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
js实现tab切换效果
2017/02/16 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
Python下线程之间的共享和释放示例
2015/05/04 Python
利用Python实现图书超期提醒
2016/08/02 Python
python 链接和操作 memcache方法
2017/03/04 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
介绍一下write命令
2014/08/10 面试题
小区门卫值班制度
2014/01/24 职场文书
运动会入场解说词
2014/02/07 职场文书
党员民主评议自我评价
2014/10/20 职场文书
入党积极分子考察意见
2015/06/02 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python
MySQL创建管理子分区
2022/04/13 MySQL
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS