產品協同設計第4組

實習任務 << Previous Next >> 實習任務二

實習任務一

建立個人可攜系統

組員操作影片

40623110-翁俊揚

40623132 趙家傑

40623102

40623152-可攜系統

40623113-可攜系統影片

40623144-林昭權

40623111王映捷

40623121蔡朝旭

分組程式修正

原程式只得到分組結果,並無分組數列,所以要編寫一個程式讀進這個分組結果,並列出數列

程式碼

import random
filename = 'cdaw1_student_list.txt'
num_in_one_group = 8
group = 1
c2019 = []
with open(filename) as f:
    read_data = f.read().splitlines() 
print("共有 " + str(len(read_data)) + " 位學員")
random.shuffle(read_data)
for i in range(len(read_data)):
    if i%num_in_one_group == 0:
        print("-"*20)
        print("group " + str(group) +":")
        group_list = []
        print()
        print(read_data[i])
        group_list.append(read_data[i])
        group = group + 1
    else:
        print(read_data[i])
        group_list.append(read_data[i])
    c2019.append(group_list)
print(c2019)

程式碼內容

filename = 'cdaw1_student_list.txt'
將cdaw1_student_list文字檔的內容導入程式碼

num_in_one_group = 8
每組的人數
group = 1
組序從哪裡開始

c2019 = []
各班分組後所得數列
read_data = f.read().splitlines()
讀進全部檔案, 轉進數列, 並同時將各行的 \n 去除
random.shuffle(read_data)
利用 shuffle 將數列隨機弄亂
if i%num_in_one_group == 0:
利用整數相除的餘數進行分組
print("-"*20)
列出分隔符號


group_list = []
在分組區隔時重置各組學員數列
print(read_data[i])
同時列出與分隔標註對應 i 的數列內容 print(read_data[i])
逐一列出同組的其他學員

呈現結果:

>y:/p37/pythonw -u "分組程式1.py"
共有 56 位學員
--------------------
group 1:

40623121
40623138
40623150
40623156
40623142
40423249
40623109
40623107
--------------------
group 2:

40623129
40423214
40623128
40623130
40623158
40623113
40623153
40623131
--------------------
group 3:

40423160
40623132
40623127
40623118
40423111
40623133
40623116
40623157
--------------------
group 4:

40623110
40623145
40623139
40623155
40623141
40623111
40423218
40623154
--------------------
group 5:

40623115
40623144
40423159
40623135
40623136
40623147
40623124
40623105
--------------------
group 6:

40623119
40623125
40623112
40623134
40623122
40423142
40623114
40623102
--------------------
group 7:

40623140
40623117
40623152
40623137
40623101
40623146
40623108
40423122
[['40623121', '40623138', '40623150', '40623156', '40623142', '40423249', '40623109', '40623107'], ['40623121', '40623138', '40623150', '40623156', '40623142', '40423249', '40623109', '40623107'], ['40623121', '40623138', '40623150', '40623156', '40623142', '40423249', '40623109', '40623107'], ['40623121', '40623138', '40623150', '40623156', '40623142', '40423249', '40623109', '40623107'], ['40623121', '40623138', '40623150', '40623156', '40623142', '40423249', '40623109', '40623107'], ['40623121', '40623138', '40623150', '40623156', '40623142', '40423249', '40623109', '40623107'], ['40623121', '40623138', '40623150', '40623156', '40623142', '40423249', '40623109', '40623107'], ['40623121', '40623138', '40623150', '40623156', '40623142', '40423249', '40623109', '40623107'], ['40623129', '40423214', '40623128', '40623130', '40623158', '40623113', '40623153', '40623131'], ['40623129', '40423214', '40623128', '40623130', '40623158', '40623113', '40623153', '40623131'], ['40623129', '40423214', '40623128', '40623130', '40623158', '40623113', '40623153', '40623131'], ['40623129', '40423214', '40623128', '40623130', '40623158', '40623113', '40623153', '40623131'], ['40623129', '40423214', '40623128', '40623130', '40623158', '40623113', '40623153', '40623131'], ['40623129', '40423214', '40623128', '40623130', '40623158', '40623113', '40623153', '40623131'], ['40623129', '40423214', '40623128', '40623130', '40623158', '40623113', '40623153', '40623131'], ['40623129', '40423214', '40623128', '40623130', '40623158', '40623113', '40623153', '40623131'], ['40423160', '40623132', '40623127', '40623118', '40423111', '40623133', '40623116', '40623157'], ['40423160', '40623132', '40623127', '40623118', '40423111', '40623133', '40623116', '40623157'], ['40423160', '40623132', '40623127', '40623118', '40423111', '40623133', '40623116', '40623157'], ['40423160', '40623132', '40623127', '40623118', '40423111', '40623133', '40623116', '40623157'], ['40423160', '40623132', '40623127', '40623118', '40423111', '40623133', '40623116', '40623157'], ['40423160', '40623132', '40623127', '40623118', '40423111', '40623133', '40623116', '40623157'], ['40423160', '40623132', '40623127', '40623118', '40423111', '40623133', '40623116', '40623157'], ['40423160', '40623132', '40623127', '40623118', '40423111', '40623133', '40623116', '40623157'], ['40623110', '40623145', '40623139', '40623155', '40623141', '40623111', '40423218', '40623154'], ['40623110', '40623145', '40623139', '40623155', '40623141', '40623111', '40423218', '40623154'], ['40623110', '40623145', '40623139', '40623155', '40623141', '40623111', '40423218', '40623154'], ['40623110', '40623145', '40623139', '40623155', '40623141', '40623111', '40423218', '40623154'], ['40623110', '40623145', '40623139', '40623155', '40623141', '40623111', '40423218', '40623154'], ['40623110', '40623145', '40623139', '40623155', '40623141', '40623111', '40423218', '40623154'], ['40623110', '40623145', '40623139', '40623155', '40623141', '40623111', '40423218', '40623154'], ['40623110', '40623145', '40623139', '40623155', '40623141', '40623111', '40423218', '40623154'], ['40623115', '40623144', '40423159', '40623135', '40623136', '40623147', '40623124', '40623105'], ['40623115', '40623144', '40423159', '40623135', '40623136', '40623147', '40623124', '40623105'], ['40623115', '40623144', '40423159', '40623135', '40623136', '40623147', '40623124', '40623105'], ['40623115', '40623144', '40423159', '40623135', '40623136', '40623147', '40623124', '40623105'], ['40623115', '40623144', '40423159', '40623135', '40623136', '40623147', '40623124', '40623105'], ['40623115', '40623144', '40423159', '40623135', '40623136', '40623147', '40623124', '40623105'], ['40623115', '40623144', '40423159', '40623135', '40623136', '40623147', '40623124', '40623105'], ['40623115', '40623144', '40423159', '40623135', '40623136', '40623147', '40623124', '40623105'], ['40623119', '40623125', '40623112', '40623134', '40623122', '40423142', '40623114', '40623102'], ['40623119', '40623125', '40623112', '40623134', '40623122', '40423142', '40623114', '40623102'], ['40623119', '40623125', '40623112', '40623134', '40623122', '40423142', '40623114', '40623102'], ['40623119', '40623125', '40623112', '40623134', '40623122', '40423142', '40623114', '40623102'], ['40623119', '40623125', '40623112', '40623134', '40623122', '40423142', '40623114', '40623102'], ['40623119', '40623125', '40623112', '40623134', '40623122', '40423142', '40623114', '40623102'], ['40623119', '40623125', '40623112', '40623134', '40623122', '40423142', '40623114', '40623102'], ['40623119', '40623125', '40623112', '40623134', '40623122', '40423142', '40623114', '40623102'], ['40623140', '40623117', '40623152', '40623137', '40623101', '40623146', '40623108', '40423122'], ['40623140', '40623117', '40623152', '40623137', '40623101', '40623146', '40623108', '40423122'], ['40623140', '40623117', '40623152', '40623137', '40623101', '40623146', '40623108', '40423122'], ['40623140', '40623117', '40623152', '40623137', '40623101', '40623146', '40623108', '40423122'], ['40623140', '40623117', '40623152', '40623137', '40623101', '40623146', '40623108', '40423122'], ['40623140', '40623117', '40623152', '40623137', '40623101', '40623146', '40623108', '40423122'], ['40623140', '40623117', '40623152', '40623137', '40623101', '40623146', '40623108', '40423122'], ['40623140', '40623117', '40623152', '40623137', '40623101', '40623146', '40623108', '40423122']]
>Exit code: 0

使用的cdaw1_student_list.txt檔案:

40423111
40423122
40423142
40423159
40423160
40423214
40423218
40423249
40623101
40623102
40623105
40623107
40623108
40623109
40623110
40623111
40623112
40623113
40623114
40623115
40623116
40623117
40623118
40623119
40623121
40623122
40623124
40623125
40623127
40623128
40623129
40623130
40623131
40623132
40623133
40623134
40623135
40623136
40623137
40623138
40623139
40623140
40623141
40623142
40623144
40623145
40623146
40623147
40623150
40623152
40623153
40623154
40623155
40623156
40623157
40623158

Git手冊

9.1Git as a Client

git svn:Git中所有Subversion橋接指令的基本指令都是git svn。它需要相當多的指令,因此我們將在完成一些簡單的工作流程時展示最常見的指令。當用戶使用git svn時,需特別注意避免同時與Git遠端倉儲交互操作使用。

Git 分支

幾乎每一種版本控制系統(Version Control System,以下簡稱 VCS)都支援某種形式的分支(branch)功能, 使用分支意味著你可以從開發主線上分離開來,然後在不影響主線的情況下繼續工作。
有人把 Git 的分支模型視為它的「殺手級功能」, 它有何特別之處呢?新建分支的操作幾乎可以在瞬間完成,並且一般來說切換不同分支也很快; 跟其它的 VCS 不一樣的地方是 Git 鼓勵在工作流程中頻繁地使用分支與合併(merge),即使一天之內進行許多次都沒問題。

git branch 命令:建立一個新的分支這會在目前提交上新建一個指標,它並不會切換到這個分支。

git checkout 命令:切換到一個已經存在的分支。

*切換分支會修改工作目錄裡的檔案
當你在 Git 中切換分支時,工作目錄內的檔案將會被修改; 如果切換到舊分支,你的工作目錄會回復到看起來就像當初你最後一次在這個分支提交時的樣子。 如果 Git 無法很乾淨地切換過去,它就不會讓你切換過去。

git merge 命令:緊急修正分支進行合併。

Git Internals
10.1Plumbing and Porcelain

Git會創建一個git目錄用於備份或複製

Git-Head文件:目前被檢出的分支/Index文件:暫存區信息/Refs目錄:指向數據(分支)/Objects目錄:所有數據內容

10.2Git Objects

cat-file:從git取回數據

update-ref:更新使用

10.3Git References

執行git branch--cat.git/Head

                                     ref:refs/heads/master

執行git checkout test--cat.git/Head

                                     ref:refs/heads/test

Remotes:git push origin master :推送上一次分支

10.5The Refspec

git push origin:topic

git push origin--delete topic

<<<<<<< HEAD

10.6Transfer Protocols

Transfer Protocols--傳輸協議

Git可以透過兩種主要方式在兩個倉儲之間傳輸數據:“啞吧”協議與“智能”協議。本章重點著重於介紹這兩個主要協議的運作方式。

The Dumb Protocol--啞巴協議

該協議稱為“啞巴協議”,是因為它在傳輸過程中不需要服務端的Git特定代碼; 獲取過程是一系列HTTP GET請求,使用者可以自由的呈現Git倉儲的安排。

10.7Maintenance and Data Recovery

本章重點在介紹Git內部的維護和數據的恢復,有時Git會自動執行一個名為“auto gc”的指令,大多數情況下,此指令不執行任何操作,但如果有過多的packfiles,則Git會執行git gc的指令,此指令會刪除不必要的文件。

不小心遺失提交則可使用git long和git master兩個指令來進行恢復。

10.8Environment Variables

Git總是在bashshell中運行,並使用許多shell環境變量來確定它的行為方式。

GIT_EXEC_PATH:可透過運行檢查當前設置git --exec-path

HOME:它是Git查找全局配置文件的地方。

GIT_CONFIG_NOSYSTEM:如果您的系統配置干擾了您的指令,但是您無權更改或刪除它,這將非常有用。

GIT_COMMITTER_NAME 設置提交者的名字

GIT_COMMITTER_EMAIL 是“提交者”字段的電子郵件地址。

GIT_COMMITTER_DATE 用於“提交者”字段中的日期。

10.9Summary

Git為一個非常強大的系統工具,可以輕鬆使用它作為VCS。本章介紹了許多管道指令 - 這些指令使用戶在使用上更家簡單。

Git and Other Systems

實習任務 << Previous Next >> 實習任務二