温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python中的if..else语句怎么利用try..except代替

发布时间:2021-01-13 15:14:26 来源:亿速云 阅读:394 作者:Leah 栏目:开发技术

python中的if..else语句怎么利用try..except代替?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

在有些情况下,利用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中的if..else语句怎么利用try..except代替问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI