在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中Genarator函数用法分析
Apr 08 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
python使用turtle绘制分形树
Jun 22 Python
深入了解Python iter() 方法的用法
Jul 11 Python
python调用其他文件函数或类的示例
Jul 16 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
python 解压、复制、删除 文件的实例代码
Feb 26 Python
浅谈python 类方法/静态方法
Sep 18 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
Sep 20 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
Python 键盘事件详解
Nov 11 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读取msn上的用户信息类
2008/12/05 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
2013/08/21 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
C++是不是类型安全的
2014/02/18 面试题
小学生获奖感言范文
2014/02/02 职场文书
答谢会策划方案
2014/05/12 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
升学宴来宾致辞
2015/07/27 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs