亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于return

def is_not_empty(s):
? ?return s and len(s.strip()) > 0
filter(is_not_empty, ['test', None, '', 'str', ' ?', 'END'])

這里面return的返回值不是應該是一個判條件(這里的len(s.strip()) > 0)嗎??return s and len(s.strip()) > 0應該怎么理解?

正在回答

1 回答

return 返回的是一個對象,這里return s and len(s.strip()) > 0,應該看成return (s and len(s.strip()) > 0),返回的將是一個布爾變量,即True或者False。s and len(s.strip()) > 0是一個復合判斷用and連接,從python的角度來看其實,它內部做了兩個隱式的變換計算,即計算b1=bool(s)和b2=bool(s.strip()>0) ,最后再判斷b1 and b2。bool(s)的意思是判斷變量s是否為0,None,或者是空的list, tuple, dict等,如果是那么b1將是False,反之為True。而bool(s.strip()>0) 是判斷字符串s在去除掉兩端空白后是否為空字符串,如果是b2就是True,反之b2為False。

希望對你有幫助!

4 回復 有任何疑惑可以回復我~
#1

殷維杰Jay 提問者

非常感謝!
2015-04-27 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

關于return

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號