由互斥事件和独立事件谈if语句(if-else语句)的写法
if語句是軟件工程師進(jìn)行編程時(shí),常用到的一種語句類型;if語句為代表的條件語句,和順序語句、循環(huán)語句,并稱程序中三大類型語句。但非常遺憾的是,很多工程師即使工作好多年,依然不是能正確理解和使用if語句。
正確理解和使用if語句的關(guān)鍵是理解兩種事件:
1)互斥事件:互斥事件是不可能同時(shí)發(fā)生的事件。互斥事件意味著兩個(gè)事件之間不可能存在著交集,即A∩B=Φ。假設(shè)事件A和事件B是互斥事件,則P(A+B)=P(A)+P(B)互斥事件,且P(A)+P(B)≤1。
2)獨(dú)立事件:說兩個(gè)事件是獨(dú)立的,直覺上是指一次實(shí)驗(yàn)中一事件的發(fā)生不會(huì)影響到另一事件發(fā)生的概率。設(shè)A,B是兩事件,如果滿足等式P(A∩B)=P(AB)=P(A)P(B),則稱事件A,B相互獨(dú)立,簡稱A,B獨(dú)立。
同時(shí),在一定條件下,各種互斥條件加起來,其概略一定為1。即假設(shè)在特定條件下,存在一系列互斥事件A、B、C、....,則P(A)+P(B)+P(C)+...=1。
但獨(dú)立事件則不具有這個(gè)性質(zhì),因?yàn)?#xff0c;獨(dú)立事件之間,相互不影響P(A)+P(B)+P(C)+...的值具有不確定性。
因此,在進(jìn)行條件判斷時(shí),如果幾個(gè)事件構(gòu)成互斥關(guān)系,則全部寫成if-else 關(guān)系;而且,為了程序的健壯性,最后必然加一個(gè)else。如果幾個(gè)事件都是相互獨(dú)立的,則寫成if語句。
典型如:
# 互斥事件 if A:A_run() else:non_A_run()# 獨(dú)立事件 if A:A_run()if B:B_run()if C:C_run()中午簡單和人討論了下這兩種場(chǎng)景,有人說一起問題:如果多種條件是獨(dú)立,但最后必須全部條件滿足的話,用if-else是可以滿足要求的。我承認(rèn)他的觀點(diǎn)是正確的,但我覺得:這種相互獨(dú)立,但必須滿足會(huì)帶來一個(gè)問題,就是一個(gè)錯(cuò)誤只能提示一次,造成每次都必須準(zhǔn)備新材料(政府部門辦事就是這樣子的感覺)。而用if獨(dú)立分支判斷,可以一次把所有信息全返回。示例如下:
# 只會(huì)順序展示錯(cuò)誤 if A:print("A Error!) elif B:print("B Error!") else:print("No Error")# 多次展示錯(cuò)誤 if A:print("A Error!)if B:print("B Error!")顯然,獨(dú)立條件最好獨(dú)立用if,互斥條件用if-else。
總結(jié)
以上是生活随笔為你收集整理的由互斥事件和独立事件谈if语句(if-else语句)的写法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习理论-PAC learning
- 下一篇: 希沃白板5使用方法