python 基礎小坑 0==False is True


最近做一個api接口,被自己基礎不牢坑了一把

接口傳進來的參數,有一個字段的值會是0

然后寫邏輯的時候是判斷是否為真

if a:
    do_something()

  

結果參數a是0的時候,也是false,其實我一直都知道,但是沒重視過,結果翻車了,這里做個記錄,不要再輕視了

正確的寫法應該是

if a is not False:
    do_something()

  

可以通過cmd快速測試

 

 

所以 0 == False這是真,成立的

0 is False這就不成立了,判斷的時候需要這樣寫才行

當然還有個類似的,就是空列表,判斷空列表也是False

a = []
if a:
    do_something()

  

如果你判斷a是否為False,就不能這么寫

道理同上

a = []

if a is not False:
    do_something()


#或者
if type(a) is list:
    do_something()

  

再python里面,int 0,float0.0 空列表,空字典,空元組,等都會算為False

所以如果是判斷是否為False,要寫is,不能寫==False,或者簡寫

這是一個小小的坑,不過如果不注意,很有可能會造成大的錯誤,和認知會發生不一致,導致程序行為不符合預期

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM