在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删除指定目录下过期文件的2个脚本分享
Apr 10 Python
python中pygame模块用法实例
Oct 09 Python
Python标准库内置函数complex介绍
Nov 25 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
python中Lambda表达式详解
Nov 20 Python
python获取栅格点和面值的实现
Mar 10 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
Django使用rest_framework写出API
May 21 Python
Python在后台自动解压各种压缩文件的实现方法
Nov 10 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
如何使用Python进行PDF图片识别OCR
Jan 22 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 Switch 语句之学习笔记
2013/09/21 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
图片完美缩放
2006/09/07 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
SVG实现时钟效果
2018/07/17 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python中Class类用法实例分析
2015/11/12 Python
浅谈Python 递归算法指归
2019/08/22 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
QA工程师岗位职责
2013/11/20 职场文书
教师求职自荐信
2014/03/09 职场文书
年终总结会主持词
2014/03/25 职场文书
文案策划专业自荐信
2014/07/07 职场文书
庆祝儿童节标语
2014/10/09 职场文书
合作协议书范本
2014/10/25 职场文书
钱学森电影观后感
2015/06/04 职场文书
小组口号霸气押韵
2015/12/24 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
什么是SOLID
2022/03/24 Javascript
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers