2021-2022-1 20211426 《資訊保安專業導論》第八週學習總結
作業資訊
作業模板:https://www.cnblogs.com/rocedu/p/9577842.html#JXJC
作業要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06
教材學習內容總結
python
第九章:
其介紹了類和物件,物件也被稱為例項。
我們可以定義類:
class car(obiect):
類體
pass
這裡也就提到了類變數,類方法,例項變數,例項方法,而類與例項的區別在於例項為個體特有,而類為共有。
對於構造它們,我們都要用到__init__()其方法不好用語言展開說明,可見下圖實踐:
封裝性,是面向物件重要的基本特徵之一。私有變數便是為了防止外部呼叫被封裝的內部資料。
使變數變為私有變數的方法是在其前面畫上__,而私有方法的封裝也是在其前加__,利用屬性方式可以簡化外部呼叫者訪問被封裝變數。
之後,便是繼承性,也屬於面向物件的重要基本特徵之一,繼承,即父類傳給子類,呼叫父類構造方法。
如圖:
多型性,同屬面向物件的基本特性之一。其可與繼承聯絡起來,實踐如圖:
第十章:
主要介紹異常處理方面的內容。
其介紹了除零異常,即任意整數都不能除以0,為了防止程式出現錯誤,我們可以
藉助try-except語句來進行異常捕獲,這個語句與之前學過的while語句,if語句類似,都可疊加,即多個except程式碼塊,如果嫌麻煩,也可以直接進行多重異常捕獲,
就不用多敲幾遍except,這個語句還可進行巢狀。
finally程式碼塊跟在try-except後面釋放資原始碼。
對於異常,我們也可以自己對其進行自定義異常類,來實現我們的要求,更加簡便化工作。
最後內,對於except巢狀,最好先梳理好流程,不然會很容易發生錯誤。
電腦科學概論第九章
面向物件———物件:問題背景中具有意義的事物或實體。
物件類:描述一組類似的物件,即具有相同屬性。
類中包含欄位即類的屬性,而方法則使處理物件中資料值的指定演算法。
設計方法——首先進行頭腦風暴(集體行為),後生成一份暫時的類列表,在確定核心,進行過濾,接著就是類分配,即責任被實現為子程式
其中涉及到python第九章內容封裝,
翻譯過程——編譯器:把用高階語言編寫的程式翻譯為機器碼的程式。需要通過編譯器的語言最常見的就是C語言,C++了
直譯器:輸入用高階語言編寫的程式,指導計算機執行每個語句指定的動作的程式,自帶直譯器,即解釋型語言則是python
第二代高階語言分為兩種,一種為編譯,一種為解釋。
標準機器語言:位元組碼(編譯java原始碼使用的標準機器語言)
程式設計語言範型——命令式:面向過程,物件的範型
宣告式:函式式模型,邏輯模型
布林表示式:即一個識別符號序列,求得結果為true或false
資料型別:已經瞭解過了,簡述一下,即整數,實數,字元,布林型,字串
輸入輸出結構:
控制結構:
巢狀邏輯:選擇語句可以被巢狀在迴圈結構,迴圈結構可以被巢狀在選擇語句中,它們也可以在子程式中被巢狀。
非同步處理:即不與計算機中的其他操作同時發生。
面向物件的程式用以下結構刻畫:
封裝:實施資訊隱蔽的語言特性,用類結構實現
繼承:允許一個類繼承另一個類的屬性和行為的語言特性
多型:語言具備的消除同名操作的歧義的能力
- 教材學習中的問題和解決過程
- 問題一:編譯型和解釋型語言,那個更加實用呢
- 解決:上網查的各有優劣,但我更傾向於解釋型
1、 編譯型語言最大的優勢之一就是其執行速度。用C/C++編寫的程式執行速度要比用Java編寫的相同程式快30%-70%。
2、編譯型程式比解釋型程式消耗的記憶體更少。
3、不利的一面——編譯器比直譯器要難寫得多。
- 4、由於鬆散的安全性和平臺依賴性,編譯型語言不太適合開發因特網或者基於Web的應用。
-
1、解釋型語言提供了極佳的除錯支援。一名Java程式設計師只需要幾分鐘就可以定位並修復一個“空指標異常”,因為Java執行環境不僅指明瞭異常的性質,而且給出了異常發生位置具體的行號和函式呼叫順序(著名的堆疊跟蹤資訊)。這樣的便利是編譯型語言所無法提供的。
2、另一個優勢是直譯器比編譯器容易實現
3、解釋型語言最大的優勢之一是其平臺獨立性
4、解釋型語言也可以保證高度的安全性——這是網際網路應用迫切需要的
5、中間語言程式碼的大小比編譯型可執行程式碼小很多
- 問題二:巢狀有數量限制嗎?如果巢狀過多是否會影響運算效率?
- 解決:上網查詢,巢狀是有限制的,如無論使用什麼條件限定,if函式以前最多是7層,現在可以達到64層。
- 而至於第二個問題,我檢視部落格園後,得知這樣一個觀點:
- 其不是一定的,是有影響因素的。
-
1)不同平臺對結構體和全域性變數的訪問不同;
2)編譯器優化能夠對這些資料訪問輕輕鬆鬆的優化。
-
程式碼除錯中的問題和解決過程
- 對於連結串列的插入,有點不解,對於next的概念不清
- 經過上網查詢,得知a->next實際上相當於a的指向,並非是節點。
-
上週考試錯題總結
- A record is a named heterogeneous collection of items in which individual items are accessed by position.
- 記錄是一個命名的異構項集合,其中各個項按位置進行訪問。錯誤
- An array is a named homogeneous collection of items in which individual items are accessed by an index.
- 陣列是項的命名同構集合,其中單個項由索引訪問。正確
-
學習進度條
-
程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長 目標 5000行 30篇 400小時 第一週 50/50 2/2 8/8 安裝Linux 第二週 80/100 3/4 16/20 學習python 第三週 150/200 1/5 20/36 開始python編碼 第四周 300/600 4/6 22/56 用程式碼託管 第五週 300/900 4/10 20/78 學習python程式流程控制 第六週 600/1200 1/14 10/98 學習使用機器語言與組合語言 第七週 640/1800 3/15 15/108 學習定義函式以及運用函式 第八週 600/2440 2/18 18/123 學習連結串列的插入和刪除 -
-
計劃學習時間:30小時
-
實際學習時間:20小時
改進情況:開始多接觸程式設計型別。
參考資料
- [機算計科學概論]
- 看漫畫學python
-