在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的Twisted框架编写简单的网络客户端
Apr 16 Python
python中base64加密解密方法实例分析
May 16 Python
python实现微信小程序自动回复
Sep 10 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
python 读取数据库并绘图的实例
Dec 03 Python
Python获取、格式化当前时间日期的方法
Feb 10 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 Python
python画环形图的方法
Mar 25 Python
基于python实现地址和经纬度转换
May 19 Python
浅析Python面向对象编程
Jul 10 Python
python中urllib包的网络请求教程
Apr 19 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生成html分页列表的代码
2007/03/18 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
香港通票:Hong Kong Pass
2019/02/26 全球购物
什么叫做SQL注入,如何防止
2016/10/04 面试题
幼儿园教师奖惩制度
2014/02/01 职场文书
计算机网络专业求职信
2014/06/05 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
暑假学习心得体会
2014/09/02 职场文书
经理岗位职责
2015/02/02 职场文书
家属慰问信
2015/02/14 职场文书
项目备案申请报告
2015/05/15 职场文书
Python进度条的使用
2021/05/17 Python
MySQL大小写敏感的注意事项
2021/05/24 MySQL