在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本地与全局命名空间用法实例
Jun 16 Python
Python内置数据结构与操作符的练习题集锦
Jul 01 Python
利用Python脚本生成sitemap.xml的实现方法
Jan 31 Python
python数据结构之链表的实例讲解
Jul 25 Python
Python跨文件全局变量的实现方法示例
Dec 10 Python
python 获取当天每个准点时间戳的实例
May 22 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
python3.7通过thrift操作hbase的示例代码
Jan 14 Python
django在开发中取消外键约束的实现
May 20 Python
python爬虫中采集中遇到的问题整理
Nov 27 Python
想学画画?python满足你!
Dec 24 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,不用COM,生成excel文件
2006/10/09 PHP
php的hash算法介绍
2014/02/13 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
python的几种开发工具介绍
2007/03/07 Python
Python中%r和%s的详解及区别
2017/03/16 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
如何把python项目部署到linux服务器
2020/08/26 Python
python如何调用百度识图api
2020/09/29 Python
Pycharm安装Qt Design快捷工具的详细教程
2020/11/18 Python
nohup的用法
2012/11/26 面试题
企业行政文员岗位职责
2013/12/03 职场文书
经理管理专业自荐信范文
2013/12/31 职场文书
新闻编辑自荐书范文
2014/02/12 职场文书
体育运动会广播稿
2014/10/05 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python