在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网络编程调用recv函数完整接收数据的三种方法
Mar 31 Python
pycharm安装图文教程
May 02 Python
Python用imghdr模块识别图片格式实例解析
Jan 11 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
python正向最大匹配分词和逆向最大匹配分词的实例
Nov 14 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
Mar 05 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
python matplotlib包图像配色方案分享
Mar 14 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 Python
PyQt QMainWindow的使用示例
Mar 24 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 06 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和ACCESS写聊天室(四)
2006/10/09 PHP
php 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
extjs render 用法介绍
2013/09/11 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
详解nodejs微信公众号开发——1.接入微信公众号
2017/04/10 NodeJs
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
python调试神器PySnooper的使用
2019/07/03 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
戴森英国官网:Dyson英国
2019/05/07 全球购物
优秀学生自我鉴定范例
2013/12/18 职场文书
全神贯注教学反思
2014/02/03 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
Python 键盘事件详解
2021/11/11 Python