python_1
編程基礎
程序 一組能讓計算機識別和執行的指令 電子計算機 能夠執行程序的機器 現代計算機 艾倫.麥席森.圖靈,英國數學家,邏輯學家.圖靈提出的圖靈機模型爲現代計算機的邏輯工作方式奠定了基礎 馮.諾依曼猶太人數學家,計算機科學家,物理學家和化學家.提供二進制作爲計算機的數制基礎,計算機應有的五大部件 馮.諾依曼體系架構 輸入設備,輸出設備,運算器,控制器,存儲器 CPU由運算器和控制器組成 運算器,完成各種算術運算,邏輯運算,數據傳輸等數據加工處理 控制器,控制程序的執行 存儲器,用於記憶程序和數據,例如內存 輸入設備,將數據或程序輸入到計算機中,例如鍵盤,鼠標 輸出設備,將數據或程序處理結果展示給用戶,例如顯示器,打印機等 CPU中還有寄存器和多級緩存Cache
語言 計算機語言 人與計算機之間交互的語言 機器語言 一定位數組成二進制的0和1的序列,稱爲機器指令.機器指令的集合就是機器語言 彙編語言 用一些助記符替代機器指令,稱爲彙編語言.ADD A,B指的是將寄存器A的數與寄存器B的數相加得到的數放到寄存器A中 語言分類 低級語言 面向機器的語言,包括機器語言,彙編語言 不同的機器不能通用,不同的機器需要不同的機器指令或彙編程序 高級語言 接近自然語言和數學語言的計算機語言 高級語言首先要書寫源程序,通過編譯程序把源程序轉換成機器指令的程序 高級語言 編譯語言,把源代碼轉換成目標機器的CPU指令(C,C++等) 解釋語言,解釋後轉換成字節碼,運行在虛擬機上,解釋執行中間代碼(Java,Python,C#等) 高級語言的發展 非結構化語言 編號或標籤,GOTO,子程序可以有多個入口和出口 有分支,循環 結構化語言 任何基本結構只允許是唯一入口和唯一出口 順序、分支、循環,廢棄GOTO 面對對象語言 更加接近人類認知世界的方式,萬事萬物抽象成對象,對象間關係抽象成類和繼承 封裝、繼承、多態 函數式語言 古老的編程範式,應用在數學計算、並行處理的場景。引入到了很多現代高級語言中 函數是'一等公民',高階函數 程序 算法+數據結構=程序 數據一切程序的核心 數據結構是數據在計算機中的類型和組織方式 算法是處理數據的方式,算法有優劣之分 寫程序難點 理不清數據 搞不清處理方法 無法把數據設計轉換成數據結構,無法把處理方法轉換成算法 無法用設計範式來進行程序設計 世間程序皆有bug,但不會debug