在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 相关文章推荐
django中的setting最佳配置小结
Nov 21 Python
Python中协程用法代码详解
Feb 10 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
django js实现部分页面刷新的示例代码
May 28 Python
python实现简单的单变量线性回归方法
Nov 08 Python
Python中fnmatch模块的使用详情
Nov 30 Python
python通过tcp发送xml报文的方法
Dec 28 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
Python pickle模块常用方法代码实例
Oct 10 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 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
第二节 对象模型 [2]
2006/10/09 PHP
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
Python中正则表达式的用法实例汇总
2014/08/18 Python
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
Python科学画图代码分享
2017/11/29 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
取numpy数组的某几行某几列方法
2018/04/03 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
使用numba对Python运算加速的方法
2018/10/15 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
项目经理的岗位职责
2013/11/23 职场文书
中文专业毕业生自荐书范文
2014/01/04 职场文书
养成教育经验材料
2014/05/26 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL