最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

20分鐘通俗講解編程的基本框架

2022-01-20 00:50 作者:甬上逍遙子  | 我要投稿

python 的底層結(jié)構(gòu)是C語言


可以理解成把C語言封裝后,用python的語法來調(diào)度。


從1946年(第一臺計算機問世),一共有超2500種的編程語言。但是無論哪種都沒有超出馮諾伊曼所給定的框架。


馮諾依曼體系下的程序都遵循這樣的原則

硬件:提供基礎(chǔ)指令

程序:自由組合這些指令來調(diào)度硬件事項具體功能。


封裝和接口

封裝:廣義來說,現(xiàn)實世界中的任何一件工具都是一次封裝

(手電筒里的電池,燈泡以及其他小零件對于程序來說都是封裝好的。程序只用調(diào)用封裝好的結(jié)構(gòu)就行了)

接口:API,即應(yīng)用程序編程接口

(手電筒的開關(guān)以及加上安裝再開關(guān)上的輔助原件加在一起才算是一個完成的API接口)

手電筒向往提供了兩個可以被調(diào)用的指令,一個是開關(guān),一個是方向,開關(guān)與方向就是程序與手電筒之間的接口


所謂編程的本質(zhì)就是程序暗戰(zhàn)某種規(guī)律調(diào)用各種API

(Application Programming Inteerface)

以API為界,將程序分成以下兩大部分:控制部分和具體功能。這兩大部分是通過API對接的。

學(xué)編程先從控制部分開始,這部分是通用的,所有程序都可能用到,內(nèi)容也比較固定,比較標(biāo)準(zhǔn)化

另一邊的具體功能,則形式就比較多樣,所有精彩基本上都來自這一邊,我們稱之為“庫和模塊”。

但凡是要實現(xiàn)一些比較復(fù)雜的功能,我們的程序都是要調(diào)用某某庫,某某模塊來實現(xiàn)的。


庫和模塊就是馮諾依曼體系中的所謂“硬件”

程序如何描述現(xiàn)實?

程序如何了解對象?

API里是什么樣的信息?

上面的問題其實就是一個問題,即程序澤恩楊描述顯示世界?

答案:通過屬性和行為

計算機通過了解對象的屬性和行為來認(rèn)識對象,


總結(jié):

編程的本質(zhì)是條用封裝后的API,API再被調(diào)用之前必須轉(zhuǎn)換成屬性代碼和行為代碼,計算機才能認(rèn)識他,調(diào)用它。


對象的屬性,即屬性和屬性值

對象的行為,即行為和行為值


計算機識別圖片和聲音也得依靠屬性代碼和行為代碼,(即事項為圖片和聲音設(shè)計API,編寫屬性代碼和代碼這就是計算機描述現(xiàn)實的方式。


在此基礎(chǔ)上,引入一個概念,就可以大大提高計算機描述現(xiàn)實的效率,這個概念就是類,它的作用是是管理計算機的屬性和行為方面更簡潔高效。


高效管理屬性和行為

將同類按屬性歸類,再件屬性和行為做初始化定義,有更改的時候,只要重新定義一個名稱即可,沒有定義餓屬性和行賄,自動認(rèn)定為默認(rèn)值,這樣這樣效率就會大大提高,

類的定義:類是對具有相同屬性和行為的類似對象的統(tǒng)稱,他是對眾多相似對象進(jìn)行抽象后的結(jié)果

實例化對象:不一定是一個個體,也可以是一個類。

一般四個類就可以實現(xiàn)下圖左邊的控制部分(其實可以算五個類,數(shù)值類有兩種)

None, 空

布爾類(bool):只有兩個值,(true,false)

數(shù)值類:整數(shù)類和浮點數(shù)類

字符串類:很多字符按照先后順序連在一起

我們看到的所有,中文,英文,各種符號,數(shù)字,各種圖案,各種語言的文字,都可以成為字符串中的字符,空格也是字符



數(shù)值類可以分為兩類:整數(shù)類和浮點數(shù)類,

整數(shù)和小數(shù)

人的理解,差別不大,,但對于計算機來說,整數(shù)和小熟的物理實現(xiàn)難度存在巨大差別

計算機需要在一個標(biāo)準(zhǔn)長度或者碩士標(biāo)準(zhǔn)位數(shù)上表達(dá)一個數(shù),所以小數(shù)點放在哪兒就是一個問題。整數(shù)不需要小數(shù)點,消暑的小數(shù)點又不確定,所以搞得左右為難,經(jīng)過長期的實踐和權(quán)衡之后,最后用浮點數(shù)來表示所有的數(shù),不管是整數(shù)還是小數(shù),我們都實現(xiàn)把它變成科學(xué)技術(shù)法的形式,然后在一個標(biāo)準(zhǔn)的位長上 ,用第一位表示數(shù)值的正負(fù),用下面的綠色部分表示科學(xué)計數(shù)法的指數(shù)。用后邊(粉色)這部分表示科學(xué)計數(shù)法的尾數(shù),這種物理實現(xiàn)方式就是浮點數(shù)。顯然,浮點數(shù)可以表示所有數(shù),整數(shù),小叔,分?jǐn)?shù)都可以用浮點數(shù)的形式來表示。不過這種方式在表達(dá)上有些小數(shù),分?jǐn)?shù)的時候,還是存在一些問題。比如數(shù)據(jù)的精確度,精確到多少位都是問題。這些情況要么忽略,要么打補丁修補。

所以計算機種講的整數(shù)和浮點數(shù)都是計算機對數(shù)值的物理實現(xiàn)方式。

整數(shù)既可以用浮點數(shù)表示,也可以用整數(shù)的形式表示。

這樣可以看出python的底層就是五個最基本的類,或者說是5個最基本的數(shù)據(jù)類型。它們都有自己特有的屬性和行為。

在python里,屬性就叫屬性attribute,而行為我們通常不叫行,叫方法methods,

有了這最基本的5個類,可以說其他的所有類,所有數(shù)據(jù)類型都可以用這5個最基本的類支撐起來,話句話說這5個類的屬性和行為可以封裝衍生出python的所有代碼。


實例化過程


python簡介

python 官網(wǎng) www.python.org,

安裝程序在官網(wǎng)可直接下載,(還有以往的版本,而且針對windows 平臺,MAC平臺,Linux 平臺等都有相應(yīng)的版本支持)

python的安裝文件很小,基本不超過30M,安裝成功后,會自帶代碼編輯器,但這個代碼編輯器等同于操作系統(tǒng)里自帶的那個最簡單的文本編輯器,其實任何文本編輯器,都可以用來寫程序代碼(包括紙)。但是所有寫好的代碼都要去固定的地方去測試去執(zhí)行。

對window系統(tǒng)來說:命令行

Mac系統(tǒng):終端

直接在命令行或者終端里寫程序代碼也是可以的

但在命令行里寫一行執(zhí)行一行效率是非常低的

所以很多第三軟件公司紛紛退出了專門用于編程的編輯器

比如:微軟的visual studio code ,捷克的pycharm

特點:不僅能編寫代碼,而且還能再編寫的過程中幫助我門語法糾正。格式提醒,代碼提示,可以大大減少編程的難度,提高編程的效率。再不離開編輯界面的情況下把代碼送到命令行或者終端去測試執(zhí)行。這個就是IDE(intergrated Development Environment ,繼承開發(fā)環(huán)境,

微軟的VSCode是一款全球免費的集成開發(fā)環(huán)境(不管是python,所有主流的編程語言幾乎都可以通過VSCode來寫,

VSCode的安裝程序在它的官網(wǎng)上可以自由下載,

code.visualstudio.com

VSCode提供了面向windows,Mac各種平臺的版本。


接下來看一下Python的目錄,下面的模塊章節(jié)就是前面提到的庫和模塊。

所有的精彩都來自庫和模塊,庫和模塊的來源有三種不同的途徑。


庫和模塊的來源:

1、python程序內(nèi)置的標(biāo)準(zhǔn)庫和標(biāo) 準(zhǔn)模塊

2、第三方開發(fā)的庫和模塊(使用前需要下載安裝)

3、自己寫的程序。


這三種模塊在使用前都要像這樣用import導(dǎo)入,程序才能調(diào)用模塊種的代碼。


類,除了可以用系統(tǒng)已經(jīng)定義好的類,比如整數(shù),浮點數(shù),也可以創(chuàng)建自己的類,

雖然我們初學(xué)是創(chuàng)建的類,雖沒有系統(tǒng)中那么豪華,嚴(yán)密,但麻雀雖小卻可以五臟俱全。


條件語句和循環(huán)語句和后面的程序調(diào)試,時間和日期,還有線程進(jìn)程都關(guān)系到程序執(zhí)行的流程和時間安排,程序的流程和時間安排很重要。

函數(shù),高階函數(shù)

Python里的函數(shù)比我們數(shù)學(xué)種的函數(shù)涵蓋面要廣,鋪蓋面要大,它不光像數(shù)學(xué)的函數(shù)那樣能算數(shù)

比如

global()函數(shù),

它連自變量參數(shù)都不要,這個函數(shù)寫在程序的任何位置他都可以把我們當(dāng)前程序中所有用到的資源都統(tǒng)計出來,也就是說把當(dāng)前程序中所有的對象都列出來,這可以幫助我們了解程序的整體狀況。

locals()函數(shù),

這個函數(shù)也不需要自變量函數(shù),它也是想globals()函數(shù)那樣統(tǒng)計對象的,區(qū)別在于,它寫在不同的位置會有不同的結(jié)果,它如果寫在某個局部,就會只統(tǒng)計這個局部的全部對象,


dir( 某對象)函數(shù)這個函數(shù)是需要參數(shù)的,它的參數(shù)是某個具體的對象,這個對象可以是一個類,是一個函數(shù),是一個整數(shù),是一個浮點數(shù)都行,因為對于Python來說,一切都是對象,我們知道一個對象的全部價值就是它的所有屬性和行為,或者說屬性和方法,那么這個dir函數(shù)可以把某個對象的全部屬性和方法都全部列出來,幫助我們了解這個對象可以調(diào)用的所有API,


以上三個函數(shù)都是python系統(tǒng)給我們定義的。我們也可以定義我們自己的函數(shù),


上面的列表,元組,字典和集合和后面的collections都是屬于容器性數(shù)據(jù)類型。

這個對象可以是一個數(shù),一個類,甚至可以使包含了所有信息的一個數(shù)據(jù)庫,沒有大小,什么對象它都能裝得下,反正是一個對象一個坑,這種往坑里裝對象的思想極具有使用價值,

這種容器性結(jié)構(gòu),不光在容器性數(shù)據(jù)類型中被運用,我們的字符串本質(zhì)上也在運用這種容器性結(jié)構(gòu),

如微信,一個坑里放一個字符,如果給每個坑進(jìn)行編號的話可以進(jìn)一步實現(xiàn)很多操作,


下面的程序調(diào)試,異常處理,日志記錄,都是內(nèi)置在python中的標(biāo)準(zhǔn)模塊

程序調(diào)試

正常情況下程序是一口氣執(zhí)行完,但是程序調(diào)試可以讓我們一行一行執(zhí)行,也可以先執(zhí)行一大片,在執(zhí)行一大片,一堆一堆的執(zhí)行,也可以讓執(zhí)行到某個位置就停下來,幾乎我們能夠想到的測試方法它都想到了,

異常處理模塊是一個類,它將我們與計算機執(zhí)行過程種的所有舉動一網(wǎng)打盡,如果我們的舉動正常,它就忽略,如果我們的舉動不正常,這個類就會把這些不正常的舉動分門別類,很有條理額展示給我們,



如意外關(guān)機,死記了,不小心按錯鍵了,輸入了不和語法的字符了,除數(shù)為零了,這些異常都會被這個類捕捉到,并反饋給我們,

異常處理向我們展示了類的高校邏輯和強大功能,



日志記錄也是Python的一個內(nèi)置標(biāo)準(zhǔn)模塊,它有眾多的屬性和方法,幫助我們按照我們給定的格式生成字符串,

這些字符串多半實在說什么日期,什么時間發(fā)生了什么狀況,這些字符串可以幫助我們了解程序的運行狀況,


我們不僅要了解代碼還要了解其背后的物理邏輯和物理實現(xiàn),當(dāng)我們能把Python種的各個環(huán)節(jié),各個板塊之間的內(nèi)在聯(lián)系弄明白,各個板塊能在我們頭腦種形成一個整體框架結(jié)構(gòu)時,你會發(fā)現(xiàn)其實計算機程序相當(dāng)把人類的思維,行為代碼化了,把現(xiàn)實世界中的事物代碼化了,(事物從現(xiàn)實狀態(tài)到代碼狀態(tài)額轉(zhuǎn)換細(xì)節(jié),有人有興趣,有人無感)Windows95前基本都是代碼化的,之后才正式趨向視窗化的,十幾年后又出現(xiàn)蘋果話,又過十年,(當(dāng)Python熱門起來),所有計算機軟件又都重新趨向于用代碼來解決更細(xì)節(jié),更復(fù)雜的問題,





























20分鐘通俗講解編程的基本框架的評論 (共 條)

分享到微博請遵守國家法律
安陆市| 蒙山县| 韶山市| 孝感市| 佳木斯市| 永春县| 仙桃市| 海晏县| 任丘市| 郯城县| 广元市| 布拖县| 泽普县| 资源县| 富源县| 新源县| 德保县| 永寿县| 维西| 揭西县| 志丹县| 芷江| 北碚区| 通州区| 新乐市| 冀州市| 曲阳县| 垣曲县| 文化| 金塔县| 许昌市| 安福县| 湘西| 曲阜市| 星子县| 斗六市| 永修县| 奉新县| 台北市| 利辛县| 壤塘县|