在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 命令行也可以自动补全
Nov 30 Python
利用Python破解验证码实例详解
Dec 08 Python
Python使用 Beanstalkd 做异步任务处理的方法
Apr 24 Python
python中如何使用分步式进程计算详解
Mar 22 Python
numpy.linspace函数具体使用详解
May 27 Python
Django--权限Permissions的例子
Aug 28 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
Aug 29 Python
Python实现代码统计工具
Sep 19 Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 Python
Python+Appium实现自动化测试的使用步骤
Mar 24 Python
python 如何调用 dubbo 接口
Sep 24 Python
python 爬取天气网卫星图片
Jun 07 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代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
js Dialog 实践分享
2012/10/22 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
Python实现简单http服务器
2018/04/12 Python
Python如何发布程序的详细教程
2018/10/09 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
python-视频分帧&多帧合成视频实例
2019/12/10 Python
Python输出指定字符串的方法
2020/02/06 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
Python同时处理多个异常的方法
2020/07/28 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
如何用SQL语句进行模糊查找
2015/09/25 面试题
企业优秀团员事迹材料
2014/08/20 职场文书
企业贷款委托书格式
2014/09/12 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
2015入党自传书范文
2015/06/26 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS