在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 初始化多维数组代码
Sep 06 Python
python3图片转换二进制存入mysql
Dec 06 Python
python使用三角迭代计算圆周率PI的方法
Mar 20 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
Python pymongo模块用法示例
Mar 31 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
Python读写zip压缩文件的方法
Aug 29 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
python如何实时获取tcpdump输出
Sep 16 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 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的类树(支持无限分类)
2006/10/09 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
PHP文件操作详解
2016/12/30 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
git进行版本控制心得详谈
2017/12/10 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
Python常见数据类型转换操作示例
2019/05/08 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
python中eval与int的区别浅析
2019/08/11 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
毕业生自我鉴定实例
2014/01/21 职场文书
趣味比赛活动方案
2014/02/15 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
大班下学期个人总结
2015/02/13 职场文书
会计实训总结范文
2015/08/03 职场文书