Python 基礎起步 (九) 條件語句 if elif else 其實很簡單

你們好,在咱們上一篇複習了dict的基礎和實用技巧後,今天咱們來看一下Python裏的邏輯關係,所謂邏輯關係無非就是若是...就...不然...之類的,不是很是複雜,個人意思是複雜的地方不用目前瞭解,由於已經超出了小白的水準,哈哈,閒話少說,讓咱們一塊兒來看看吧~數組

什麼是if

Python裏面用if-else的形式
if <expr>:                 #若是知足什麼條件
    <statement>            #就執行什麼步驟

注意有兩點:ui

  • if 後面的判斷結果就是True和False兩種類型,若是True,將執行statement的步驟1
  • statement那裏必定有縮進,寫在if條件裏面

讓咱們拿實際的狀況看看具體是什麼意思:spa

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')

我給你們解釋一個可能產生的疑問,就是以下這個條件式:code

if x:                                # Falsy  
    print('yes')

這裏爲何是錯誤的呢,由於很簡單,在Python裏默認1就是True,0就是False,這裏x的值正好是0,和ython默認的規定的同樣,因此這個判斷也是錯的,你們明白了吧~blog

知足if條件後有多個statements執行

用大白話講就是說若是知足了if的條件,那麼你有不少事情想依次執行,並且在作完這些事情後完成了條件,開始下一項任務,那麼這種狀況下調用形式以下圖:圖片

if <expr>:
    <statement>
    <statement>
    ...
    <statement>
<following_statement>

clipboard.png

感受仍是圖片比較容易理解哈哈~ 讓咱們來看一個真實的例子:ip

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')it

多個if在一塊兒

你們看一下下面的代碼,若是你預想的輸出結果和實際的同樣,那恭喜你已經完全明白if是什麼東西了io

# 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

總結

  • 基本的條件語句常見的就這幾種
  • 我的建議不要寫一行,仍是拆成多行寫,這樣思路清晰
相關文章
相關標籤/搜索