實驗1:
assert
false
andfalse
ortrue
==true
# 乙個true就能導致整個表示式輸出true 應該後計算or
assert
true
o***lse
andfalse
==true
# 交換前後順序,依然先計算or
assert
false
andtrue
o***lse
==false
# 中間的true無效,應該先算and
assert
false
ortrue
andfalse
==false
# 交換and和or不影響結果
# 用`&` `|` 代替`and` `or`依然能執行
更多的and
和or
連線起來,也是先算and
再算or
,結論:and
比or
的優先順序高,另外邏輯運算子not
的優先順序比and
還要高
實驗2:
def
func
(x):
print
('func'
, x)
return
'return from func'
a =true
or func(
'a')
b =false
or func(
'b')
# 顯示 func b
c =true
and func(
'c')
# 顯示 func c
d =false
and func(
'd')
# 用`&` `|` 代替`and` `or`會發生錯誤:
# typeerror: unsupported operand type(s) for |: 'bool' and 'str'
print
(f'a \n'
)# 顯示 a true
print
(f'b \n'
)# 顯示 b return from func
print
(f'c \n'
)# 顯示 c return from func
print
(f'd \n'
)# 顯示 d false
print
(false
ornone
)# 顯示 none
print
(true
and1
)# 顯示 1
or
遇到乙個判斷為等價true的值,表示式整體為當前值,丟掉剩餘部分。
and
遇到乙個判斷為等價false的值,表示式整體為當前值,丟掉剩餘部分。
如果一直沒有遇到,則返回最後乙個值。
一串or
連線的表示式中,只要有乙個為true
,結果就為true
;所有都為false
時,表示式才為false
。
一串and
連線的表示式中,只要有乙個false
,結果就為false
;所有都為true
時,表示式才為true
。
合理調整表示式的順序,可以加快運算速度,避免程式出錯。
這種運算稱為短路邏輯
實踐:刪除列表或字典中的元素,如果存在則刪除,如果不存在則忽略
s =
print
('before'
, s)
# 顯示before
rm2 =
1in s and
not s.remove(1)
# 注意: 判斷和移除時的元素要相同
rm3 =
2in s and
not s.remove(2)
# not 是為了方便
print
('after '
, s)
# 顯示after
print
(f'rm2:, rm3:'
)# 顯示rm2:true, rm3:false
大家有沒有想到更好的實現方法,可以交流一下。 學習 Python學習(一) Python問答
一.為什麼要使用python?python的主要特點有 1 軟體質量,python 具有很強的可讀性,因此在重用和維護方面就比較方便 2 編碼效率,python沒有編譯和鏈結庫的過程 3 程式移植性,不做任何修改,python可執行在windows和linux系統 4 豐富的支撐庫,python既可...
python學習清單大全 python學習清單
學習單子 a部 python 大神vamei的blog之python篇 大神vamei的部落格很是推薦 各方面寫的都很好 我暫時只是看過他的python 網路和django的部分,看下來簡單易懂,很適合做個學習的大綱,然後靠自己日後不斷的充實進去。文章中也簡要的列出常用的一些命令語法之類的。pyth...
python列表學習 python列表學習整理
list1 列表 是一種有序的集合,可以隨時新增和刪除其中的元素。list1 lily lucy peter abel 列印列表 print list1 遍歷列表 end 迴圈中不換行print x,end for x in list1 print x 列表個數 print len list1 列表...