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

作者:很吵请安青争 时间:2023-09-12 17:50:10 

在有些情况下,利用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

来源:https://blog.csdn.net/dpengwang/article/details/85320174

标签:python,try,except,if,else
0
投稿

猜你喜欢

  • 用正则替换所有URL

    2009-03-13 13:51:00
  • ASP读取MySQL数据库出现乱码的解决办法

    2010-03-08 14:25:00
  • ASP.NET获取不到JS设置cookies的解决方法

    2023-07-19 08:07:08
  • Python部署web开发程序的几种方法

    2023-08-24 06:30:32
  • asp模板解析类模块(支持if,function,loop及解析缓存)

    2008-08-11 13:06:00
  • PHP设计模式之解释器模式浅析

    2023-05-29 02:28:16
  • Go语言使用swagger生成接口文档的方法

    2023-08-28 06:23:23
  • PHP利用header跳转失效的解决方法

    2023-09-07 23:39:45
  • 用Css来制作一个漂亮的多选列表框

    2008-05-29 12:45:00
  • 写给JavaScript库开发者们的规则

    2008-10-26 12:30:00
  • 注册表单的改进分解

    2008-05-31 17:19:00
  • asp如何让用户也能修改密码?

    2010-05-13 16:41:00
  • SQL Server 2000数据库FOR XML查询概述

    2008-12-09 14:49:00
  • Reflow

    2009-10-25 12:34:00
  • xml文件调用css

    2008-09-05 17:12:00
  • 奇淫技巧之图片切割

    2010-09-21 13:24:00
  • 服务器XMLHTTP(Server XMLHTTP in ASP)基础

    2008-11-11 12:45:00
  • Python中turtle库的使用实例

    2023-08-01 23:05:56
  • Go语言题解LeetCode724寻找数组的中心下标

    2023-07-09 03:26:01
  • javascript与jsp发送请求到servlet的几种方式实例

    2023-06-15 15:59:30
  • asp之家 网络编程 m.aspxhome.com