在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