在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 相关文章推荐
详解C++编程中一元运算符的重载
Jan 19 Python
python中常用的九种预处理方法分享
Sep 11 Python
Python解析excel文件存入sqlite数据库的方法
Nov 15 Python
python 获取图片分辨率的方法
Jan 08 Python
新手入门Python编程的8个实用建议
Jul 12 Python
python3获取当前目录的实现方法
Jul 29 Python
Python中的引用和拷贝实例解析
Nov 14 Python
Python创建数字列表的示例
Nov 28 Python
基于python实现删除指定文件类型
Jul 21 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
Python中time标准库的使用教程
Apr 13 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 IP及IP段进行访问限制的代码
2008/12/17 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
javascript 闭包
2011/09/15 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
javascript中关于&& 和 || 表达式的小技巧分享
2015/04/10 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
Python部署web开发程序的几种方法
2017/05/05 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
东方电视购物:东方CJ
2016/10/12 全球购物
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
简历中自我评价分享
2013/10/09 职场文书
中医药大学毕业生自荐信
2013/11/08 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
个人年终总结开头
2015/03/06 职场文书
法定代表人免职证明
2015/06/24 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
logback 实现给变量指定默认值
2021/08/30 Java/Android