課程
/后端開發
/Python
/python進階
return len(s.strip()) > 0這個語句有什么作用呢?
2015-03-06
源自:python進階 2-10
正在回答
s.strip()會去掉s首尾的空格
我們一步一步解釋:
A:首先搞清楚運算的優先級:
按照從低到高優先級的順序;同行為相同優先級
1?Lambda??#運算優先級最低?2?邏輯運算符:?or?3?邏輯運算符:?and?4?邏輯運算符:not?5?成員測試:?in,?not?in?6?同一性測試:?is,?is?not?7?比較:?<,<=,>,>=,!=,==?8?按位或:?|?9?按位異或:?^10?按位與:?&11?移位:?<<?,>>12?加法與減法:?+?,-13?乘法、除法與取余:?*,?/?,%14?正負號:?+x,-x
這里我們就要先算?len(s.strip())?>?0? 看結果 是Ture 還是?False
然后再進行 AND 運算?
B: 如果列表里面有 “none”None類型沒有strip方法,執行會報錯。前面加s,當s為None時,執行到and前面已經可以判定為False,and后的部分就不會被執行了。
關鍵在and這個邏輯運算符,變量A and 變量B 返回的一定是個bool值。為什么這樣寫,就像樓上說的,應對輸入是None類型的情況。
and ?:布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的運算值。并且 None沒有strip()方法。
為什么不能直接寫return len(s.strip())>0
藏于斯
這個語句的關鍵在于
s?and?len(s.strip())?>?0
and運算表示只有當s為真,并且s去掉首位空格后長度大于零(幫助排除s是' ? '的情況),才返回True,否則返回False
就可以起到filter的效果了
紅玫瑰_0002
ccccccjjjjjcccc 回復 紅玫瑰_0002
我知道s.strip()去掉的是首尾的空格,我不明白的是,return len(s.strip()) > 0這個語句有什么作用呢,是說當len(s.strip()) > 0為true,才返回s嗎?
a412739861
辣椒紅燒肉3140712
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-03-07
s.strip()會去掉s首尾的空格
2019-09-25
我們一步一步解釋:
A:首先搞清楚運算的優先級:
按照從低到高優先級的順序;同行為相同優先級
這里我們就要先算?len(s.strip())?>?0? 看結果 是Ture 還是?False
然后再進行 AND 運算?
?s? ? ? ? ??and? ? ? ? ??len(s.strip()) > 0
B: 如果列表里面有 “none”None類型沒有strip方法,執行會報錯。前面加s,當s為None時,執行到and前面已經可以判定為False,and后的部分就不會被執行了。
2018-07-07
關鍵在and這個邏輯運算符,變量A and 變量B 返回的一定是個bool值。為什么這樣寫,就像樓上說的,應對輸入是None類型的情況。
2017-12-03
and ?:布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的運算值。并且 None沒有strip()方法。
2016-11-16
為什么不能直接寫return len(s.strip())>0
2015-03-29
這個語句的關鍵在于
and運算表示只有當s為真,并且s去掉首位空格后長度大于零(幫助排除s是' ? '的情況),才返回True,否則返回False
就可以起到filter的效果了
2015-03-09
我知道s.strip()去掉的是首尾的空格,我不明白的是,return len(s.strip()) > 0這個語句有什么作用呢,是說當len(s.strip()) > 0為true,才返回s嗎?