在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入门篇之列表和元组
Oct 17 Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
Apr 08 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
May 21 Python
PYTHON压平嵌套列表的简单实现
Jun 08 Python
Python中运算符"=="和"is"的详解
Oct 08 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
python中bytes和str类型的区别
Oct 21 Python
python绘制BA无标度网络示例代码
Nov 21 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 Python
python实现斗地主分牌洗牌
Jun 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登录超时检测功能实例详解
2017/03/21 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
Python3 socket同步通信简单示例
2017/06/07 Python
python 读取DICOM头文件的实例
2018/05/07 Python
用python生成1000个txt文件的方法
2018/10/25 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
python中open函数的基本用法示例
2019/09/07 Python
pytorch构建多模型实例
2020/01/15 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
python使用Word2Vec进行情感分析解析
2020/07/31 Python
Python如何将字符串转换为日期
2020/07/31 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
建筑专业自我鉴定
2013/10/22 职场文书
美术教师岗位职责
2014/03/18 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
期中考试复习计划
2015/01/19 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis
Go 中的空白标识符下划线
2022/03/25 Golang