大家好,在我們上一篇複習了dict的基礎和實用技巧後,今天我們來看一下Python裡的邏輯關係,所謂邏輯關係無非就是如果...就...否則...之類的,不是非常複雜,我的意思是複雜的地方不用目前瞭解,因為已經超出了小白的水準,哈哈,閒話少說,讓我們一起來看看吧~
什麼是if
Python裡面用if-else的形式
if <expr>: #如果滿足什麼條件
<statement> #就執行什麼步驟
注意有兩點:
- if 後面的判斷結果就是True和False兩種型別,如果True,將執行statement的步驟1
- statement那裡一定有縮排,寫在if條件裡面
讓我們拿實際的情況看看具體是什麼意思:
x = 0
y = 5
if x < y: # True
print('yes')
if y < x: # False
print('yes')
if x: # Falsy
print('yes')
if y: # Truthy
print('yes')
if x or y: # Truthy
print('yes')
if x and y: # Falsy
print('yes')
if 'aul' in 'grault': # Truthy
print('yes')
if 'quux' in ['foo', 'bar', 'baz']: # Falsy
print('yes')
我給大家解釋一個可能產生的疑問,就是如下這個條件式:
if x: # Falsy
print('yes')
這裡為什麼是錯誤的呢,因為很簡單,在Python裡預設1就是True,0就是False,這裡x的值正好是0,和ython預設的規定的一樣,所以這個判斷也是錯的,大家明白了吧~
滿足if條件後有多個statements執行
用大白話講就是說如果滿足了if的條件,那麼你有很多事情想依次執行,而且在做完這些事情後完成了條件,開始下一項任務,那麼這種情況下呼叫形式如下圖:
if <expr>:
<statement>
<statement>
...
<statement>
<following_statement>
感覺還是圖片比較容易理解哈哈~ 讓我們來看一個真實的例子:
if 'foo' in ['bar', 'baz', 'qux']:
print('Expression was true')
print('Executing statement in suite')
print('...')
print('Done.')
print('After conditional')
這段程式碼完美的展示了圖片中講解的內容,大家可以猜猜結果,這段程式碼執行後會輸出什麼。
現在公佈答案:
After conditional
簡單說一下,很簡單,我們想要看看'foo' 這個字串是否在陣列['bar', 'baz', 'qux']裡面,如果在,一次執行底下的縮排的4個print方法,如果不在,跳出if,繼續該幹什麼幹什麼,所以顯然易見'foo'不在陣列裡,因此直接執行最後的print('After conditional')
多個if在一起
大家看一下下面的程式碼,如果你預想的輸出結果和實際的一樣,那恭喜你已經徹底明白if是什麼東西了
# Does line execute? Yes No
# --- --
if 'foo' in ['foo', 'bar', 'baz']: # x
print('Outer condition is true') # x
if 10 > 20: # x
print('Inner condition 1') # x
print('Between inner conditions') # x
if 10 < 20: # x
print('Inner condition 2') # x
print('End of outer condition') # x
print('After outer condition') # x
輸出結果為:
Outer condition is true
Between inner conditions
Inner condition 2
End of outer condition
After outer condition
if else
在Python中使用if else 的表達模板如下:
if <expr>:
<statement(s)>
else:
<statement(s)>
大家想必很容易看懂,現在舉個栗子:
x = 20
if x < 50:
print('(first suite)')
print('x is small')
else:
print('(second suite)')
print('x is large')
輸出結果為:
(first suite)
x is small
很容易理解了,如果滿足if條件如何,else否則怎麼怎麼樣
if,elif ,else
讓我們來看最後一種情況,也很好弄懂,elif的意思就是else if 的縮寫而已,表達模式如下:
if <expr>:
<statement(s)>
elif <expr>:
<statement(s)>
elif <expr>:
<statement(s)>
...
else:
<statement(s)>
看一個具體例項:
name = 'Joe'
if name == 'Fred':
print('Hello Fred')
elif name == 'Xander':
print('Hello Xander')
elif name == 'Joe':
print('Hello Joe')
elif name == 'Arnold':
print('Hello Arnold')
else:
print("I don't know who you are!")
輸出結果為:
Hello Joe
總而言之就是如果不滿足第一個if條件,接著看是否滿足第二個if條件,然後是第三個...
if 寫在一行裡
Python有一個好處就是它非常懶,很多東西它會自己想辦法減少程式碼量,所以就出現了以下這種寫法:
if <expr>: <statement>
if <expr>: <statement_1>; <statement_2>; ...; <statement_n>
分別看兩個例子,第一個簡單一些的:
if 'f' in 'foo': print('1'); print('2'); print('3')
Out:1
2
3
稍微複雜一些的:
x = 2
if x == 1: print('foo'); print('bar'); print('baz')
elif x == 2: print('qux'); print('quux')
else: print('corge'); print('grault')
Out: qux
quux
總結
- 基本的條件語句常見的就這幾種
- 個人建議不要寫一行,還是拆成多行寫,這樣思路清晰