在python中利用try..except来代替if..else的用法

 更新时间:2019年12月19日 15:08:36   作者:很吵请安青争  
今天小编就为大家分享一篇在python中利用try..except来代替if..else的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在有些情况下,利用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随机生成数据后插入到PostgreSQL

    Python随机生成数据后插入到PostgreSQL

    本文主要介绍利用python的random库生成随机数,然后插入到PostgreSQL数据库中,有需要的可以参考学习。
    2016-07-07
  • 对Python定时任务的启动和停止方法详解

    对Python定时任务的启动和停止方法详解

    今天小编就为大家分享一篇对Python定时任务的启动和停止方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • python操作redis的方法

    python操作redis的方法

    这篇文章主要介绍了python操作redis的方法,包括Python针对redis的连接、设置、获取、删除等常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • python之mock模块基本使用方法详解

    python之mock模块基本使用方法详解

    这篇文章主要介绍了python之mock模块基本使用方法详解,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为,需要的朋友可以参考下
    2019-06-06
  • Python学习之字典的创建和使用

    Python学习之字典的创建和使用

    这篇文章主要为大家介绍了Python中的字典的创建与使用,包括使用字典(添加、删除、修改等操作),感兴趣的小伙伴可以跟随小编一起学习一下
    2022-06-06
  • Python如何安装第三方模块

    Python如何安装第三方模块

    在本篇文章里,小编给大家分享的是关于Python安装第三方模块的方法及实例代码,需要的朋友们可以学习下。
    2020-05-05
  • django 自定义filter 判断if var in list的例子

    django 自定义filter 判断if var in list的例子

    今天小编就为大家分享一篇django 自定义filter 判断if var in list的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python命令行解析之parse_known_args()函数和parse_args()使用区别介绍

    python命令行解析之parse_known_args()函数和parse_args()使用区别介绍

    这篇文章主要介绍了python命令行解析之parse_known_args()函数和parse_args()使用介绍,需要的朋友可以参考下
    2018-01-01
  • 利用Python校准本地时间的方法教程

    利用Python校准本地时间的方法教程

    这篇文章主要给大家介绍了关于如何利用Python校准本地时间的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • python将字典内容存入mysql实例代码

    python将字典内容存入mysql实例代码

    这篇文章主要介绍了python将字典内容存入mysql实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01

最新评论