iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
0
Software Development

從0開始學習程式-Python系列 第 5

[Day 8] 如果我說沒有如果!Python 如果是什麼?

  • 分享至 

  • xImage
  •  


歡迎大家來到Blue Monday!今天學校來了好多新生,看起來充滿幹!但是對研究生或助教來說...應該是噩夢的開始吧XDD
好了~扯遠了~
如果我說,這沒有結果...靜茹就不會難過
那我們若如果拿來學習,那是不是有一點強呢?

如果我說如果

生活中有很多的如果,如果我再認真一點,我就可以上台大;如果我在帥一點,我就會有女朋友;如果我再胖一點,我就可以不用當兵...每個如果條件滿足的話,後面那件事情就會發生但通常不會XD
所以當設計程式的時候,只要滿足一些條件,則可以觸發某些動作,大致上可以寫成以下:

if (conditon stamente):
    doing something...
elif (conditon stamente):
    doing something...
else:
    doing something...

然而在做條件敘述時我們會需要用到以下邏輯運算

條件式或邏輯運算子

條件符號

符號 意思
== 等於
!= 不等於
> 大於
>= 大於等於
< 小於
<= 小於等於

邏輯運算子

符號 意思 說明
and或者 & and前後兩個條件要同時成立(True)時,此時才成立(True)
or or前後兩個條件只要一個成立(True),此時敘述就成立(True)
not 將判斷的邏輯相反,即原本為成立(True),經過not變不成立(False)

我們可以用邏輯運算子將兩個條件敘述同時考慮,舉例來說:

a=4
b=5
c=a-b
print(a>0 and c<=0) #output:True
print(b<0 or c!=0) #output:True
print(b>0 and c==0) #output:False
print(not(a<0) and not(c>0)) #output:True

搭配if舉個實際應用

a='apple'
b='mac'
if a=='apple' and b=='mac':
        print('I like Macbook.')
elif a=='apple' and b!='mac':
    print('I just like Apple.')
else:
    print('I do not like it.')
#output:I like Macbook.

由上例可知道,如果a是'apple'且b是'mac',則輸出'I like Macbook.';
如果a是'apple'且b不是'mac',則輸出'I just like Apple.';
其他的則輸出'I don't like it.'
所以在第一個if兩個條件式都是True即達到條件,因此輸出I like Macbook,在第二個條件判斷。
然而我們將第二個elif改成

elif a=='apple' or b!='mac':
    print('I just like Apple.')

此時,ifelif兩個條件判斷式都滿足,看起來應該要同時輸出'I like Macbook.'和'I just like Apple.',然而經過實際嘗試過後,會發現只有'I like Macbook.',是因為程式會從if開始判斷,當if條件False,這時就會往下判斷elif的條件或者輸出else以下的操作。
換言之,如果現在將ifelif裡面的條件以及對應的輸出交換,這時候的結果就會變成'I just like Apple.'

if if 往上爬

更進階來說,當if後的判斷式成立,下面的操作就會進行,而當判斷是只是一個變數,沒有更多的條件符號加入時,if還是可以使用,且能順利觸發下面的操作就會進行!

K=[1,'2',(3,4)]
Q=[]
if Q:
    print('I am Queen')
elif K:
    print('I am King')  
else:
    print('I am Loser') 
#output:'I am King'

好啦~今天就到這裡吧!
每週第一天就不要這麼累吧

但....你以為今天沒練習嗎~錯了!當然有啊!
Q. 如果有一個List:[1,2,3,4,5,6],如果要由左至右逐項移除,你會怎麼做呢?


上一篇
[Day7] 圈圈圓圓迴圈? 之 最後一次暑假
下一篇
[Day 9] 當你的眼睛一直笑,當你的python繼續進步...
系列文
從0開始學習程式-Python32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言