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

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

Python從入門到精通:老程序員速成記

2023-05-09 13:39 作者:滬漂小程序  | 我要投稿

.

1 深入接觸Python:功能特性和優(yōu)勢

-

作為有多年軟件開發(fā)經(jīng)驗的老程序員,即使沒有機會使用Python做軟件項目,也多少會接觸一點,形象的比喻:即使沒吃過豬肉,也應(yīng)該見過豬跑。而事實上,Python是一門被廣泛使用的編程語言,誕生于1991年,至于是誰發(fā)明的,感興趣的小伙伴可以自己去腦補一下。不同的編程語言,擅長的領(lǐng)域各不相同,Python主要擅長以下幾個方面:

(1)服務(wù)器端的網(wǎng)頁開發(fā)編程。

(2)普通的應(yīng)用軟件開發(fā)。

(3)數(shù)學(xué)計算。

(4)系統(tǒng)腳本。

(5)人工智能。

在具體的功能實現(xiàn)方面,Python可以做以下事情:

(1)在服務(wù)器端創(chuàng)建一個網(wǎng)頁應(yīng)用。

(2)連接數(shù)據(jù)庫以及讀寫文件。

(3)處理大數(shù)據(jù)做復(fù)雜的數(shù)學(xué)計算。

(4)分付的軟件開發(fā)包,快速提升軟件開發(fā)效率。

Python的這些功能特性,與這門編程語言的發(fā)展過程密不可分,從上圖其演進過程不難看出,其興起的1994年,計算機網(wǎng)絡(luò)和分布式計算已經(jīng)成為編程計算的趨勢,而作為面向未來的編程語言,其設(shè)計之初也充分考慮了這一點。為了完成一些軟件需求,我們選擇Python,還因為以下幾個原因:

(1)Python可以工作在不同的平臺上,包括Windows,Mac OS,Linux,樹莓派(Raspberry Pi)等等。

(2)Python的語法結(jié)構(gòu)很簡單,類似于英語的自然語言。

(3)Python的簡單語法結(jié)構(gòu)讓實現(xiàn)相同的功能,需要的代碼行數(shù)更少。

(4)Python是解釋型語言,寫好的代碼,可以立即執(zhí)行,制作項目原型非常方便。

(5)Python的開發(fā)方式靈活,可以面向過程,也可以面向?qū)ο?,同時也支持面向功能。

目前Python的主流版本是Python 3,但是依然有一些項目用Python 2。編寫Python可以直接使用文本編輯器,如果你對開發(fā)環(huán)境沒有特別要求,甚至可以直接使用Windows自帶的記事本。網(wǎng)上關(guān)于這方面種草的文章很多,也往往讓剛?cè)腴T的程序員不知道選擇哪個開發(fā)環(huán)境最好。根據(jù)筆者這樣的老程序員的經(jīng)驗,優(yōu)先選擇的是PyCharm,其次是VS Code,前者使用其社區(qū)版本(Community)即可,后者是小家子氣的微軟貢獻的免費軟件。

在語法結(jié)構(gòu)上,主流的其他的編程語言基本要通過分號或者是花括號來換行,而Python語言的換行符號就是用來標(biāo)志記一個程序指令執(zhí)行結(jié)束的。我們使用其他語言編寫一個函數(shù),基本上離不開class、function之類開頭和結(jié)束標(biāo)志, Python則直接使用每一行開始的留白和空格來表示,這些操作毫無疑問會提高我們寫代碼的效率。

.

2 理解Python的強大:結(jié)盟的重要性

-

上面說了Python語言的很多好處,那么我們?nèi)绾稳胧諴ython編程呢?

其實任何一門編程語言,大家想要實現(xiàn)從入門到精通,都要樹立一個意識:千里之行始于足下,老程序員走的路多,對于一條新的路,哪些地方可能會有坑,大多數(shù)情況下,會提前做出判斷,這是經(jīng)驗所發(fā)揮的作用。

我們學(xué)習(xí)Python編程,這幾個概念需要記?。?/p>

(1)編程語言的解釋器或編譯器:Python是解釋型語言,所以只要安裝解釋器就可以了,解釋器就是可以運行的python.exe,將這個文件所在文件夾放在操作系統(tǒng)可以找到路徑中。

(2)編程語言的語法:這是程序員和編程語言溝通的橋梁,如果不掌握語法,相當(dāng)于是你和這顯示器或編譯器無法溝通,因此,Python也不例外。最基礎(chǔ)的語法包括變量,數(shù)據(jù)類型,運算服務(wù)條件判斷語句函數(shù)和類的定義以及函數(shù)庫的引用。

(3)常用的軟件開發(fā)包和庫函數(shù):所謂的常用,主要包括和系統(tǒng)的交互,如查詢程序運行的操作系統(tǒng)的一些參數(shù)以及通過請求操作系統(tǒng)的接口,實現(xiàn)對文件的讀寫等操作,除了跟運行的操作系統(tǒng)的交互之外,我們還需要一些常用的輸入輸出函數(shù),特別是寫日志記錄的函數(shù),這方面往往被菜鳥程序員忽略。

除了以上三個基礎(chǔ)的概念之外,在Python中我們不得不說其豐富的擴展庫,這也是Python最引以為豪的地方,也是Python成為被廣泛使用的編程語言的主要原因之一??梢孕蜗蟮睦斫鉃椋阂粋€人的力量畢竟勢單力薄,但是你與很多人結(jié)盟,大家分別貢獻各自的力量,你有能力集合并運營,這才是真正的強大。Python就是這樣的,他的“強”,真正彰顯了結(jié)盟的重要性,具體的體現(xiàn),就是“擴展庫”。

上圖是一段簡單的Python代碼的截圖,雖然剛開個頭,我們已經(jīng)看到這段代碼引用很多強大的擴展庫,離開這些擴展庫,Python跟其他的編程語言也就沒有什么太大的區(qū)別了。

Python這門開發(fā)語言的擴展庫很多,比如我們平時使用頻率非常高的Web端的開發(fā)框架Flask和Django,用于數(shù)據(jù)處理的numpy和pandas,以及繪圖工具turtle(常常被用于少兒編程入門第一課必學(xué))。

Python這門編程語言更廣泛的應(yīng)用是在大數(shù)據(jù)處理和人工智能領(lǐng)域。Google早期對于人工智能領(lǐng)域的研究以及機器學(xué)習(xí)、神經(jīng)元智能感知的計算等,大多數(shù)都是使用Python語言編寫的,所以我們掌握了這門開發(fā)語言,在web3.0和元宇宙這樣的大趨勢背景下,可以更好的根據(jù)客戶需求,創(chuàng)建項目原型,快速迭代開發(fā)。

這些擴展庫為Python開發(fā)提供了豐富的可擴展框架,可以幫助我們快速搭建應(yīng)用軟件的基礎(chǔ)架構(gòu),降低數(shù)據(jù)庫連接以及增刪改查的代碼復(fù)雜度,有一些甚至優(yōu)化了緩存讀寫機制,以提高數(shù)據(jù)操作的效率。

基于以上內(nèi)容,老程序員要跟小伙伴們分享的基本就完成了,剩下的工作就是編寫Python代碼了。任何一門編程語言都是熟能生巧,在實際的項目開發(fā)和部署運營中不斷深入對其功能特性的理解。如果僅停留在教程和課程設(shè)計案例上,像Python這樣的開發(fā)語言,即使用了很久,可能還只是停留在表面,抓到一點皮毛而已。

.

3 Python的基礎(chǔ)語法和常用數(shù)據(jù)類型

-

以下這部分對于老司機來說幾乎忽略,如果不跟其他編程語言橫向?qū)Ρ鹊脑挕K赃@部分內(nèi)容建議閱讀的時候,根據(jù)各自的代碼編程經(jīng)驗,想一想相同的語法規(guī)則,例如函數(shù)、類等概念,在C++、Java、PHP、GO、C#等環(huán)境中是如何實現(xiàn)的。

3.1 函數(shù)的定義與調(diào)用

Python 定義函數(shù)使用 def 關(guān)鍵字,一般格式如下:

def 函數(shù)名(參數(shù)列表): ? ?

函數(shù)體

以下是一個具體的實例,我們先導(dǎo)入logging包,定義logit函數(shù)來代為實現(xiàn)logger.info的功能:

import logging def logit(log_info): ? ?

logger.info(log_info) #logit調(diào)用 logit('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')

調(diào)用logit輸出日志信息如下,其中的日期時間是有擴展庫logging自動生成的。

2023-04-14 10:48:17,738 [abot_tools.py - L:37] - INFO aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [__main__ - logit]

3.2 類的定義與調(diào)用

我們以類Abot_Config_Yaml為例來演示這個過程。

構(gòu)造函數(shù)設(shè)置self.filename和self.config兩個成員變量,方便在類里面和實例中調(diào)用這兩個變量;而類方法的定義,也是為了在類和實例中方便調(diào)用。

以下實例中,load_config類方法,實現(xiàn)讀取一個文件,把讀取出來的內(nèi)容傳給yaml對象,在構(gòu)造函數(shù)中定義的self.config成員變量,通過調(diào)用load_config類方法獲取值。

3.3 包和庫的引用

我們以JSON包來解釋這個過程,因為JSON數(shù)據(jù)在不同的編程語言和功能模塊中作為接口數(shù)據(jù)交換格式,已經(jīng)被廣泛應(yīng)用。引用json包后,我們使用json包中的loads函數(shù)將json格式的內(nèi)容轉(zhuǎn)換成python字典對象。



輸出值為字典對象:



3.4 列表、字典、元組和集合

Python代碼中,列表、字典、元組和集合是我們最常用四種數(shù)據(jù)類型,必須區(qū)分他們的區(qū)別。我們需要搞清楚在Python中的列表、字典、元組和集合四個概念的關(guān)系,才能更好的理解這門編程語言。這里主要通過代碼實例說明這4種數(shù)據(jù)類型的區(qū)別,至于這些鏈?zhǔn)浇Y(jié)構(gòu)的增刪改查,可以根據(jù)具體的使用場景再組織代碼。

3.4.1 列表

我們用[]初始化列表new_img_list,添加列表元素時調(diào)用append方法



輸出的內(nèi)容如下:

[{'seq': 1}, {'seq': 2}, {'seq': 3}]

3.4.2 字典

空字典初始化用{},這里我們設(shè)置seq序號為1,作為new_img_item的初始化。

字典通過一個鍵對應(yīng)一個值的方式直接添加字典元素,和更改鍵對應(yīng)的值。我們可以通過字典的鍵,直接訪問對應(yīng)鍵里的值。

new_img_item = {'seq':1}?

new_img_item['type'] = '4:3'?

new_img_item['url'] = 'http://xcxxxxxxxx'?

print(new_img_item)

輸出的內(nèi)容如下:

{'seq': 1, 'type': '4:3', 'url': 'http://xcxxxxxxxx'}


3.4.3 元組

Python的元組與列表類似,不同之處在于元組的元素不能修改。元組使用小括號 ( ),列表使用方括號 [ ]。

元組創(chuàng)建很簡單,只需要在括號中添加元素,并使用逗號隔開即可,代碼實例如下:



回應(yīng)的輸入內(nèi)容如下:


3.4.4 集合

集合(set)是一個無序的不重復(fù)元素序列(列表),可以使用大括號 { } 或者 set() 函數(shù)創(chuàng)建集合;列表創(chuàng)建使用的是方括號[ ]。創(chuàng)建一個空集合必須用 set() 而不是 { },因為 { } 是用來創(chuàng)建一個空字典,所以創(chuàng)建集合的時候,建議統(tǒng)一使用set函數(shù),以避免跟“字典”這個概念混淆;字典創(chuàng)建是通過鍵值對的形式,而集合則沒有鍵值對的。

創(chuàng)建的示例代碼如下

set_test = set()?

set_test.add('多級分銷')?

set_test.add('會員二維碼')?

set_test.add('推薦者關(guān)系')?

print(set_test)

輸出的內(nèi)容如下,像字典,但是卻沒有鍵值對;像列表,但是又用{}開始和結(jié)尾。

{'多級分銷', '會員二維碼', '推薦者關(guān)系'}

以上是從一個老程序員的角度對Python編程的理解,希望能夠?qū)Υ蠹宜袔椭?。后續(xù)我們準(zhǔn)備對數(shù)據(jù)庫、文件、網(wǎng)址的讀寫做總結(jié),對Python中常用的方法和函數(shù)做總結(jié),同時對Flask這個基礎(chǔ)框架的使用做說明。通過對剩下的這幾個知識點的補充,Python開發(fā)的拼圖基本完結(jié)。


Python從入門到精通:老程序員速成記的評論 (共 條)

分享到微博請遵守國家法律
故城县| 宜兰市| 确山县| 富顺县| 四会市| 西盟| 双江| 常山县| 台北县| 洛扎县| 郴州市| 塔河县| 皮山县| 额济纳旗| 广宗县| 大同县| 淳安县| 开鲁县| 嘉善县| 论坛| 太康县| 和龙市| 松阳县| 徐水县| 调兵山市| 郓城县| 斗六市| 光山县| 和平县| 阳高县| 栾城县| 东辽县| 益阳市| 云龙县| 连山| 平山县| 邯郸市| 和田县| 揭阳市| 安溪县| 滦平县|