--- title: Collaborate program tags: python, collaboration --- ## First Meeting Minutes(2/2, 20:00~22:30) **Deadline 2/4 Friday** - 晚餐吃什摩(Dinner Jia Sa) - 語言: Python - 物件內容 - 店名 - 菜色標籤(先存成 list, 之後改成JSON) - [JSON using python](https://www.itread01.com/study/python-json.html) - [Convert list to JSON in python](https://www.quora.com/How-do-I-convert-a-list-to-JSON-in-Python) - (營業時間) - (電話) - 使用者介面 - 輸入: - 菜色名稱 - 店家名稱 - 標籤 - 輸出: - 菜色名稱 - 店家名稱 - 菜單名稱: `menu.txt` - 菜單資料儲存格式:`json 格式` - 統一項目: - 變數名稱 - 函數參數資料型態 - 標籤們(不用分類以下只是方便統計) - 主食:飯('main01') 麵('main02') - 風格: 台式('type01') 義式 日式 美式 泰式 韓式 - 飲料: - 點心: - 葷 素 - 工作分配 - _Dish(): 劉怡君、錢品竹 - Pick_Dish(): 陳靖雯、田蕙瑜 - main function + class(1): 劉又聖 - [x] 1. github 創 share repository - [ ] 2. 盡量照著gitflow 做事 ``` '[ [菜色名稱, 店家名稱, [標籤]], [菜色名稱, 店家名稱, [標籤]], [菜色名稱, 店家名稱, [標籤]], ]' ``` - main function 流程 ```c= 選擇要 加餐廳or挑餐廳 if(加餐廳) 進入 Add_Dish() else if(挑餐廳) { 進入 Pick_Dish() 輸出篩選結果 } ``` - Add - Pick 建議: 1. 統一縮排(一般習慣上是4個空白) ```vim # ~/.vimrc set expandtab set tabstop=4 set shiftwidth=4 ``` 2. list 在 python 中為一內建函式(參考python筆記,List介紹之Common Error) 3. 執行程式部分 ```python= # 通常執行main function的部分會這樣寫 def main(): pass if __name__ == '__main__': main() # __name__ 可以判斷該py檔是否為主要程式執行的檔案 # 簡單實驗 # a.py import b print('a.py name is', __name__) # b.py print('b.py name is', __name__) # 執行程式 $ python a.py Output: a.py name is __main__ b.py name is b ``` 4. isFun、hasFun 這類的函式,一般是回傳Boolean,算是潛規則,由名字暗示回傳值為何 - 所以這些函式裡面通常都不應該有print之類的輸出,除非用來Debug,但最後也都應該拿掉 --- 新增Modify、Delete 討論變數、函式、類別、檔案名稱格式 討論標籤儲存方式 變數: a_variable 全域變數: GLOBALVAR 函式: Fun_Name, Add_Dish, Pick_Dish 類別: Class, setDishName(Member function) 檔案名稱: afilename.txt delete_Dish:怡君、又聖、蕙瑜 modify_Dish:money、Joyce **Deadline: 2/14 Fri** --- ```python= >>> 菜色名稱 >>> 店名 print: 1 -> Rice, 2 -> Noodle, .. >>> 1 4 9 { '1' : 'Rice', '2' : 'Noodle', ...} # Add D_name = input(...) R_name = input(...) tags = input(...) aList = [ID, D_name, R_name, tags] Rice = Dish(*aList)#展開參數 Rice = Dish(ID, D_name, R_name, tags) Noodle = Dish(ID, D_name, R_name, tags) rice_attrs = Dish.getAllAttrs() # [菜色名稱, 店家名稱, [標籤]] noodle_attrs = Dish.getAllAttrs() # [菜色名稱, 店家名稱, [標籤]] json.dump([rice_attrs, noodle_attrs], file) menu_s = json.load(file) menu = [] for dish in menu_s: menu.append(Dish(*dish)) # Pick search_tag = input() def fun(search_tag): dish.hasTag() result.append(...) result do Output ``` --- ## 2/15 21. Meeting Agenda - [ ]Dinner_Jia_Sa 進度 ### 開學待討論 - [x]Git 教學計畫 ==2/25討論== - [x]噴水池音樂專題(ask QC) - [ ]真的要辦營隊ㄇ(否決!!) - [ ]完整16週計畫 // [前計畫](https://hackmd.io/NJLXL2LpT46XTbeh-IbNSA) - [x]網路組進度 - 分工要確實啊(failed) - [x]平常例會時間 - [x]新聞翻譯催繳定期限(3/1 23.59前上傳) - [ ]重新訂定一下規則 - 例會需請假者,需在例會三天前請假,未請假未到者,罰錢 - 初犯: 10元 - 累犯: 10 * 累犯次數 - EX: 星期日開會,最晚要在星期四23:59前請假完畢 - 例會遲到,罰選修分數(待討論,問老師) - 初犯: - 累犯: - 備案: 累點扣錢制,每遲到五分鐘累積乙點,集滿三點罰十元 - 對錶,以錢品竹的時間為主 :+1: - 新聞翻譯定期限 -> 下次例會前(大概一個禮拜)?? - 臨時請假 - 視情況而定,需明確指出理由,由幹部討論 - [x]討論是否隔周開會(靖雯開表單) - [x]討論下次開會時間(4ef) --- ```python= >>> python main.py 1~5: 新增、選擇、修改、刪除、列出所有菜色 1. 新增(Add_Dish) Input: 菜名,餐廳,菜色標籤 Output: 成功新增 Example: Input: Steak, Joy kitchen, main04 Steamed dumpling, Joy kitchen, main03 2. 選擇(Pick_Dish) Example: Input: main03, main04 Output: return [ Steak, Joy kitchen, main04 Steamed dumpling, Joy kitchen, main03 ] 3. 修改(Modify_Dish) Example: Input: 1 or 2: 選擇列出方式 輸入Index: 選擇要修改的項目 輸入要改的欄位:(1-Dish, 2-Restaurant, 3-tags) 輸入新的資料:新的輸入會完全覆蓋舊資料 Output:成功修改! 4. 刪除(Delete_Dish) Example: Input: 1 or 2: 選擇列出方式 輸入Index: 選擇要刪除的項目 Output: 成功刪除 5. 列出(Show_Menu) Output: 所有菜色 ``` **Deadline 2/19 Wed 21.** 我就懶ლ(◉◞౪◟◉ )ლ: everyday 攏 OK 劉怡君:同上 靖雯:1 田: 1、2、==3==、6