在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正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 Python
解决Python requests 报错方法集锦
Mar 19 Python
Python管理Windows服务小脚本
Mar 12 Python
python中使用 xlwt 操作excel的常见方法与问题
Jan 13 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
python+Selenium自动化测试——输入,点击操作
Mar 06 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
python3获取控制台输入的数据的具体实例
Aug 16 Python
Python办公自动化解决world文件批量转换
Sep 15 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
phpcms中的评论样式修改方法
2016/10/21 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
JS实现简单省市二级联动
2019/11/27 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
Python中input和raw_input的一点区别
2014/10/21 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
Python 导入文件过程图解
2019/10/15 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
质检的岗位职责
2013/11/17 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
学校开除通知书
2015/04/25 职场文书
股东协议书范本2016
2016/03/21 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB
python数字类型和占位符详情
2022/03/13 Python