在python中利用try..except來代替if..else的用法
在有些情況下,利用try…except來捕捉異??梢云鸬酱鎖f…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,不然對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使用詳解
- 淺談對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 OpenCV圖像指定區(qū)域裁剪的實(shí)現(xiàn)
這篇文章主要介紹了Python OpenCV圖像指定區(qū)域裁剪的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
python通過偽裝頭部數(shù)據(jù)抵抗反爬蟲的實(shí)例
下面小編就為大家分享一篇python通過偽裝頭部數(shù)據(jù)抵抗反爬蟲的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Python使用functools模塊中的partial函數(shù)生成偏函數(shù)
所謂偏函數(shù)即是規(guī)定了固定參數(shù)的函數(shù),在函數(shù)式編程中我們經(jīng)??梢杂玫?這里我們就來看一下Python使用functools模塊中的partial函數(shù)生成偏函數(shù)的方法2016-07-07
Python-OpenCV深度學(xué)習(xí)入門示例詳解
深度學(xué)習(xí)已經(jīng)成為機(jī)器學(xué)習(xí)中最受歡迎和發(fā)展最快的領(lǐng)域。深度學(xué)習(xí)的常見應(yīng)用包括語音識(shí)別、圖像識(shí)別、自然語言處理、推薦系統(tǒng)等等。本文將通過一些示例代碼,帶你詳細(xì)了解深入學(xué)習(xí)2021-12-12
django 實(shí)現(xiàn)手動(dòng)存儲(chǔ)文件到model的FileField
這篇文章主要介紹了django 實(shí)現(xiàn)手動(dòng)存儲(chǔ)文件到model的FileField,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python抓新型冠狀病毒肺炎疫情數(shù)據(jù)并繪制全國疫情分布的代碼實(shí)例
在本篇文章里小編給大家整理了一篇關(guān)于Python抓新型冠狀病毒肺炎疫情數(shù)據(jù)并繪制全國疫情分布的代碼實(shí)例,有興趣的朋友們可以學(xué)習(xí)下。2020-02-02
Python入門教程(三十八)Python的NumPy庫簡介
這篇文章主要介紹了Python入門教程(三十八)Python的NumPy庫簡介,NumPy 是用于處理數(shù)組的 python 庫,它還擁有在線性代數(shù)、傅立葉變換和矩陣領(lǐng)域中工作的函數(shù),需要的朋友可以參考下2023-05-05
jupyter notebook指定啟動(dòng)目錄的方法
這篇文章主要介紹了jupyter notebook指定啟動(dòng)目錄的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

