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