PyCharm程式架構與操作介紹 Karel worlds === **作者 - 林嘉誠 編輯 - BESTCI跨域人才程式能力培育計畫 / NTU BESA** **項目** ==Deceompistion== ==Debug mode intro、Constant== ==Function comments、def function== ==Commands of Karel worlds== **共筆內容** **PyCharm程式架構與操作介紹 Karel worlds** ## PyCharm程式架構 * 電腦是只有0和1的世界 * 電腦使用二進位數(Binary Digit)來表示資料 * 因此程式語言要先轉換成 0 & 1,電腦才能進行運算 * PyCharm是一種驅動程式,使python可以運作 * Karel worlds為stanford的學生創立的一款學習python的入門方式 ### Deceompistion * top down design的思維 * 先把步驟的思緒一步步列下來 * 再依序地將其轉換成程式碼 ``` # 為單行註解(single-line) ``` ``` """ 為多行註解(multi-line) """ ``` ### debug mode intro * 把指令加上()使其變成binary * 命名時不能用空格,用_代表空格 :::info 注意用_代表空格只有在Python的世界才符合喔! ::: ### Constant * uper case * Above def main() * 牽一髮動全身 :::info 寫常數一定要寫註解!! ::: ### def function * function的重點是讓其可以**重複使用** ``` def 名稱(): * 縮排處,代表指令區間 ```` ### function comments * 每個function都需要為其註解,讓其他使用者也可以理解 * 是給人看得,所以所有code前都要有註解 * 加上起始狀態、結束狀態,已確保每個function的內容正確 * comment/uncomment : 按"**ctrl + ?**" ``` function comment Pre-condition: #執行程式碼之前的狀態 Post-condition: #執行程式碼之後的狀態 ``` ### commands of Karel worlds * 每個不同的karl world代表不同世界 * Street代表橫排;Avenue代表直排;beeper代表物件;wall代表牆壁 * 每個命令會從其Pre-condition變成Post-condition * 把karel的語法抓進來使用 `from karel.stanfordkarel import *` * karel 的指令 * pick()撿起 * put()放下 * move()前進 * turn_left()左轉 * put_beeper()放物件 * pick_beeper()拿物件 ### main ``` def main(): scope(縮排處,代表執行區間) * 冒號加在目標後面 * 縮排在那之後都是執行區間 out of scope(不再縮排處,代表非執行區間) ``` ### tab * tab是縮排 * **ctrl + tab** 是解縮排 ### condition * 給出Yes/No * 使用前就**知道**會用幾次,可以使用for loop(definite loop) * 重複咒語 ``` for i in range(99): 縮排,代表重複區間 不要在括弧內放東西,除了重複咒語!!! ``` * 使用前**不知道**會用幾次,可以使用while loop(idenfinite loop) * while loop會一直重複執行,直到不符合condition的狀態 * 然後就會執行No區間的指令後結束 ``` while condition(): 縮排,代表yes區間 out of scope,代表No 區間 ```