Day 3 - Beginner - Control Flow and Logical Operators

對了,請問寫
if / elif / elif / else

if / if / if / else
會有什麼不一樣嗎?

抱歉我也會努力跟上的!
我也是雖然當下無法討論
但會事後看大家的討論!

1個讚

其實宣告一個變數,你可以想像成一個箱子,將這個空間先給bill之後再看看要往裡面放入什麼值或是從裡面調用存在的值

1個讚

謝謝sky大鼓勵~
畢竟是新手,想學的紮實點,
不過缺點就是每堂課會花好久時間(有時候要上到三個多小時) :sweat_smile:

我們一起加油~
我雖然很慢,但是還是會努力想跟上,希望可以完成百日馬挑戰!

1個讚

這個和上次的縮排問題有關。
一、if / elif / elif / else 這四個如果都屬於同一階層,那就是從上而下,逐次判斷是否成立。有任何一個成立,就會整個跳出來。
二、if / if / if / else 這樣寫,沒有縮排看不出關係。

有關縮排,後面有一節,用 資料夾、檔案 的方式說明,我覺得是我看過最好的說明。

在Day2 後面,我有 tag你說明。

1個讚

我覺得學寫程式在知道基本觀念之後多練習(練多了你大概就會知道該怎麼應用變成一種直覺),然後多看看別人寫得範例應用

Ps我建議如果要多了解該怎麼應用,去額外多做一些練習題,然後從“做”中學(一定要動手做)

2個讚

嬰兒學走路就是一直走、一直跌,然後就會了。

2個讚

沒錯,從錯誤挫折中成長,我一開始學習也會遇到很多錯誤然後再從中理解就會慢慢進步

做錯題目學習,比一知半解答對要來的好

1個讚

我覺得我們的進行方式可能要改一下。
現在新手是 Aileen & Nicole 是吧?還有其他人嗎?

我建議(有小壓力而不是大壓力),你們最好每天完成後,把 repl.it 的網址給我們,我們幫忙看。這樣效果會比每週集中一天談,要來得好。

2個讚

請問Logical Operators為什麼到not那裡,false會變成true,true會變成false ?

喔喔~
一、了解,原來是這樣。是同一階層、由上往下依序測試,遇到的第一個可滿足的條件後,就會跳出。這概念再寫的時候好像模模糊糊,sky大這樣說我就理解了

二、如果if / if / if 不縮排,是不是從頭到尾每一個條件都會分別測試,有可能一三成立、二四不成立,會有並存的結果

(6-59 Indentation in Python 我還沒上到 :sweat_smile: 我接下來會補上!)

Hi Aileen,
我也納悶過這個問題,提供給妳我解決的辦法。
把下面兩個不同狀況的code複製到Python Tutor實際看一下差異:
http://pythontutor.com/visualize.html#mode=edit
[狀況1]
a = 88
if a >= 90:
print(‘優秀’)
if a >=80:
print(‘良好’)
if a >= 70:
print(‘中等’)
if a >= 60:
print(‘及格’)
else:
print(‘當掉’)

[狀況2]
a = 88
if a >= 90:
print(‘優秀’)
elif a >=80:
print(‘良好’)
elif a >= 70:
print(‘中等’)
elif a >= 60:
print(‘及格’)
else:
print(‘當掉’)

希望對妳有幫助~ :wink: 一起加油~

2個讚

只是觀念,可以先看,當作動畫看。

2個讚

我建議新手可以一行一行的去打註解把每一行都去理解過

這個問題前幾天和 Jeff33 提過。
如果都是 if,前面的執行完,後面還是要在判斷一次。
如果是 if, elif, else ,前面只要有符合的,後面就不需再判斷。

1個讚

感謝!那我們可以貼到每一天各別的討論頁面下嗎?

作一個極端的假設範例,假設是每一分就有一個 if。而小明考99分,就會是:

方式一:每個 if 都要執行,執行101次 if(100~0)
if score == 100:
print(“100”)
if score == 99:
print(“99”)

方式二:有一個符合就跳出,這裡只執行到第二個即可。
if score == 100:
print(“100”)
elif score == 99:
print(“99”)

是的,以章節的方式寫,例如:
3-34. Logical Operators
然後附上你們的 repl.it 網址

1個讚

我覺得新手可以考慮用jupter notebook或是colab(可掛載在google雲端)去練習
因為這兩種工具有以下特點:

Debug Fast: 它可以將程式碼一個區塊的慢慢執行,不需要每次都將整個程式跑過一遍,直到出現你要的結果,你可以反覆的修改執行在同一個地方,直接完成你想像中的功能。

Display Easy: 在執行的過程,你可以輕鬆的查看過程中的變數,隨時監控結果。

2個讚