在python中利用try..except來代替if..else的用法
在有些情況下,利用try…except來捕捉異常可以起到代替if…else的作用。
比如在判斷一個(gè)鏈表是否存在環(huán)的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循環(huán)內(nèi)部,fast指針每次向前走兩步,這時(shí)候我們就要判斷fast的next指針是否為None,不然對(duì)fast.next再調(diào)用next指針的時(shí)候就會(huì)報(bào)異常,這個(gè)異常出現(xiàn)也反過來說明鏈表不存在環(huán),就可以return False。
所以可以把while代碼放到一個(gè)try …except中,一旦出現(xiàn)異常就return。這是一個(gè)比較好的思路,在以后寫代碼的時(shí)候可以考慮替換某些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的用法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python try except else使用詳解
- 淺談對(duì)python中if、elif、else的誤解
- python else語句在循環(huán)中的運(yùn)用詳解
- python中if及if-else如何使用
- python使用for...else跳出雙層嵌套循環(huán)的方法實(shí)例
- Python while循環(huán)使用else語句代碼實(shí)例
- Python循環(huán)中else,break和continue的用法實(shí)例詳解
- python for和else語句趣談
- Python列表解析配合if else的方法
- 詳解Python if-elif-else知識(shí)點(diǎn)
- Python中else的三種使用場景
相關(guān)文章
Python數(shù)據(jù)分析之分析千萬級(jí)淘寶數(shù)據(jù)
網(wǎng)購已經(jīng)成為人們生活不可或缺的一部分,本次項(xiàng)目基于淘寶app平臺(tái)數(shù)據(jù),通過相關(guān)指標(biāo)對(duì)用戶行為進(jìn)行分析,從而探索用戶相關(guān)行為模式。感興趣的可以學(xué)習(xí)一下2022-03-03Python二進(jìn)制文件讀取并轉(zhuǎn)換為浮點(diǎn)數(shù)詳解
這篇文章主要介紹了Python二進(jìn)制文件讀取并轉(zhuǎn)換為浮點(diǎn)數(shù)詳解,用python讀取二進(jìn)制文件,這里主要用到struct包,而這個(gè)包里面的方法主要是unpack、pack、calcsize。,需要的朋友可以參考下2019-06-06Python+Turtle實(shí)現(xiàn)繪制可愛的小倉鼠
肉嘟嘟的小動(dòng)物很是可愛,這篇文章主要為大家介紹一下如何運(yùn)用Python中的turtle庫控制函數(shù)繪制小倉鼠,文中的實(shí)現(xiàn)方法講解詳細(xì),感興趣的可以嘗試一下2022-10-10Python入門之實(shí)例方法、類方法和靜態(tài)方法的區(qū)別講解
這篇文章主要介紹了Python入門之實(shí)例方法、類方法和靜態(tài)方法的區(qū)別講解,實(shí)例方法是在創(chuàng)建了類的實(shí)例之后才能被調(diào)用的方法,類方法是在不需要?jiǎng)?chuàng)建類的實(shí)例的情況下就可以調(diào)用的方法,最后,靜態(tài)方法是與類和類的實(shí)例都沒有綁定關(guān)系的方法,需要的朋友可以參考下2023-10-10python實(shí)現(xiàn)應(yīng)用程序在右鍵菜單中添加打開方式功能
這篇文章主要介紹了python實(shí)現(xiàn)應(yīng)用程序在右鍵菜單中添加打開方式功能,本文分步驟給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-01-01sublime python3 輸入換行不結(jié)束的方法
下面小編就為大家分享一篇sublime python3 輸入換行不結(jié)束的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python實(shí)現(xiàn)批量將PPT轉(zhuǎn)換成長圖
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)批量將PPT轉(zhuǎn)換成長圖,并且圖片名稱與PPT文件名稱相同,保存位置相同,感興趣的小伙伴可以了解下2023-08-08在python中利用最小二乘擬合二次拋物線函數(shù)的方法
今天小編就為大家分享一篇在python中利用最小二乘擬合二次拋物線函數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12使用 Python 合并多個(gè)格式一致的 Excel 文件(推薦)
這篇文章主要介紹了使用 Python 合并多個(gè)格式一致的 Excel 文件,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12