python心得第1篇最近這段時(shí)間我們學(xué)習了很多內容,增長(cháng)了很多關(guān)于Python的知識,萬(wàn)事萬(wàn)物是相通的,正如學(xué)習新的知識就像吃飯一樣。吃多了就會(huì )消化不良,反映到學(xué)習上也是一樣,不知各位最近的感覺(jué)怎樣下面是小編為大家整理的python心得,供大家參考。
最近這段時(shí)間我們學(xué)習了很多內容,增長(cháng)了很多關(guān)于Python的知識,萬(wàn)事萬(wàn)物是相通的,正如學(xué)習新的知識就像吃飯一樣。
吃多了就會(huì )消化不良,反映到學(xué)習上也是一樣,不知各位最近的感覺(jué)怎樣,反正學(xué)記是需要一些時(shí)間好好消化,掌握到手中,為下一步的知識補齊缺口。
接下來(lái),學(xué)記和大家一起回顧一下最近學(xué)習的內容,循序漸進(jìn),循序漸進(jìn)。
分支結構
分支結構就像上圖一樣,是用來(lái)選擇道路的。
所用的關(guān)鍵字是
If elif else
這三個(gè)詞的意思分別是
如果 否則如果 其他的
分支語(yǔ)句的寫(xiě)法需要將與關(guān)鍵字與關(guān)鍵字對齊
循環(huán)結構
循環(huán)結構應用于一些重復的進(jìn)程
通常我們只接觸兩種循環(huán)
for-in循環(huán) 和 while循環(huán)
for-in循環(huán)適用于
確切的知道到底循環(huán)幾次
while循環(huán)適用于
不知道到底有幾次循環(huán)
此時(shí)要搭配bool 來(lái)進(jìn)行
即 True 和 Flase
關(guān)鍵字
關(guān)鍵字的熟練運用對于今后的開(kāi)發(fā)工作
有非常重要的作用,但這么多關(guān)鍵字我們不能去死記硬背
只有在一個(gè)一個(gè)代碼的驗證當中去熟悉去掌握
那樣是最可靠的
def 設置模組
len 計算字符串長(cháng)度
capitalize 獲得字符串首字母大寫(xiě)的拷貝
upper 獲得字符串變大寫(xiě)后的拷貝
find 從字符串中查找子串所在位置
index 與find類(lèi)似但找不到子串時(shí)會(huì )引發(fā)異常
startswith 檢查字符串是否以指定的字符串開(kāi)頭
endswith 檢查字符串是否以指定的字符串結尾
center 將字符串以指定的寬度居中并在兩側填充指定的字符
rjust 將字符串以指定的寬度靠右放置左側 填充指定的字符
isdigit 檢查字符串是否由數字構成
isalpha 檢查字符串是否以字母構成
isalnum 檢查字符串是否以數字和字母構成
append 添加元素
remove 刪除元素
clear 清空元素
sorted 排序
大家可能會(huì )有些疑惑,學(xué)習這些東西真的有用嗎?這些隨處可見(jiàn)的基礎方面的知識真的有用嗎?
我可以非??隙ǖ馗嬖V大家
有用的!
這些知識就像是建筑工地隨處可見(jiàn)的磚石,不管這些磚石怎樣的不起眼,但是沒(méi)有一幢建筑可以離開(kāi)磚石,學(xué)習的過(guò)程是枯燥的,不過(guò)這也正符合非?,F實(shí)的一條規律。
學(xué)如逆水行舟,不進(jìn)則退!
也正是因為它枯燥苦悶,學(xué)習有難度,才保證了,我們學(xué)習了這些知識以后,可以靠它們?yōu)樯?,在這個(gè)知識時(shí)代闖出自己的一片天!
不要放棄,絕對不要放棄!
黎明之前是最黑暗的!
為了自己的未來(lái)好好堅守吧!
青年學(xué)記 陪伴著(zhù)各位青年
017年11月,一群編程零基礎的小伙伴們成立了Python學(xué)習小組,12名學(xué)員從此夜以繼日地奔赴學(xué)習的征程。一個(gè)月過(guò)去了,從在屏幕上用最簡(jiǎn)單的語(yǔ)句打印出“Hello, Python; Hello, World”開(kāi)始,我們逐步地學(xué)習Python語(yǔ)法,學(xué)習操作列表、字典,學(xué)習For,While,If語(yǔ)句,現在遇到了第一個(gè)難點(diǎn):類(lèi)。通過(guò)研讀、練習、交流、討論,作為程序界的小白,我們逐步地理解了類(lèi)的概念,明白了面向對象與面向過(guò)程編程的差異,以下是我們的小小心得,與大家分享:
編程基本思想
現實(shí)世界中,每個(gè)復雜的事務(wù)都可以拆分為多個(gè)組成部分,其中的每一部分就可稱(chēng)之為對象。比如要實(shí)現一個(gè)很大很復雜的項目,我們可以把項目拆分成不同的組成部分,然后分別對不同部分通過(guò)編程實(shí)現,最終再把各個(gè)部分組裝起來(lái)完成整個(gè)項目。這讓我們能夠從整體上來(lái)控制項目,從而讓程序開(kāi)發(fā)更有效。
比如汽車(chē)制造,汽車(chē)廠(chǎng)所做的僅僅是各個(gè)部件的組裝和匹配,而各個(gè)部件的生產(chǎn)是由相對專(zhuān)業(yè)的廠(chǎng)商完成。如果需要研發(fā)新型號汽車(chē),整車(chē)廠(chǎng)所考慮的是如何對各個(gè)新式的零部件進(jìn)行新的組裝和匹配,而不是從頭到尾重新生產(chǎn)一輛汽車(chē)。
面向對象的編程
VS
面向過(guò)程的編程
面向過(guò)程編程是針對一個(gè)需求的具體實(shí)現過(guò)程,但是對于大型項目的復雜需求,一步一步的做,這種編程效率顯然是低下的。
面向對象編程則是對項目進(jìn)行拆分后(一般按照功能拆分),分別實(shí)現,再將各個(gè)對象組裝起來(lái)。因此簡(jiǎn)單的小程序使用面向過(guò)程方法編程更適合。面向對象的編程特性是易維護(可讀性高),效率高,質(zhì)量高(重用性),擴展性好(高內聚,低耦合)。
對象
通俗的講,對象就是事物,一個(gè)公司、一個(gè)部門(mén)、一個(gè)人,甚至一本書(shū)都可以是一個(gè)對象,程序員可以自由決定把什么作為對象。
比如eHR系統,需要對組織架構,員工進(jìn)行管理,所以使用的對象可能是公司,部門(mén),崗位,員工,等等。對象可大可小,可復雜也可簡(jiǎn)單,如果僅僅是做一個(gè)考勤系統,員工這個(gè)對象一定要比eHR系統中的員工對象簡(jiǎn)單。
類(lèi)
現實(shí)世界中,類(lèi)代表一組有共同特性的事物,把不同對象之間的共性抽象出來(lái),就形成類(lèi)的概念。比如說(shuō)男人、女人可以抽象成人這個(gè)類(lèi);處長(cháng)、秘書(shū)可以抽象成員工類(lèi)。至于類(lèi)如何去抽象,粒度的粗細,這是一個(gè)需要在學(xué)習和實(shí)踐中摸索的過(guò)程。
實(shí)例
以下是一個(gè)實(shí)例,大家體會(huì )一下:
定義父類(lèi):
class Employee:
def __init__(self, name, age): #抽象員工共性(名字,年齡)
= name
= age
def signON(self):
print(+" sign ") #抽象簽到的動(dòng)作
def work(self):
print( + " on ") #抽象工作的動(dòng)作
繼承出子類(lèi):
class MEmployee(Employee): #繼承父類(lèi)的共性
def __init__(self, name, age):
super().__init__(name, age)
def work(self): #重寫(xiě)子類(lèi)的方法(抽象出從事管理崗位工作的動(dòng)作)
print( + " on ")
繼承出第二個(gè)子類(lèi):
class TEmployee(Employee):
def __init__(self, name, age, devLanguage): #繼承父類(lèi)的共性,增加語(yǔ)言的屬性
super().__init__(name, age)
= devLanguage
def work(self): #重寫(xiě)子類(lèi)的方法(抽象出從事技術(shù)崗位工作的動(dòng)作)
print( + " on ")
def showLanguage(self): #增加子類(lèi)的方法(抽象出會(huì )某種編程語(yǔ)言的動(dòng)作)
print("use "++" ")
在上面的程序中,我們先定義了一個(gè)父類(lèi):包含員工的姓名、年齡等一般特性,可以執行簽到、工作這兩類(lèi)動(dòng)作。在第一個(gè)子類(lèi)中,管理層在前面一般特性的基礎上,執行管理工作;在第二個(gè)子類(lèi)中,作為一般員工在前面一般特性的基礎上,執行技術(shù)工作,從事編程。
由于我是自學(xué)Python,非科班出生,所以只能分享一些關(guān)于我的學(xué)習心得,如果有不對地方歡迎指正。
不過(guò)非科班出生雖然是一個(gè)痛點(diǎn),但是在工作上,我其實(shí)不輸給我其他同事,這點(diǎn)我倒是很有自信,而且我也統一一句話(huà)“目前互聯(lián)網(wǎng)上的免費編程課程,足夠讓你成為一個(gè)合格的碼農”。
編程入門(mén)
我剛開(kāi)始學(xué)習編程,主要是因為自己想動(dòng)手做個(gè)網(wǎng)站,但是由于技術(shù)原因,再加上朋友都比較忙,最后抱著(zhù)“求人不如求己”的想法,干脆自學(xué)。
編程難不難?
這個(gè)問(wèn)題我覺(jué)得所有認真學(xué)過(guò)的人,都一定會(huì )肯定告訴你編程不難,但是精通那是相當困難的。
如果你還沒(méi)去學(xué)習,就覺(jué)得編程一定很難,那么其實(shí)你是沒(méi)有資格說(shuō)這句話(huà)的,任何事情一定是要去嘗試后,才能這么說(shuō)。
編程其實(shí)很像堆積木,然后根據需求,把東西造出來(lái),可以是房子,也可以是橋梁。
學(xué)習編程無(wú)非運用這些積木,來(lái)創(chuàng )造你要的東西。
編程語(yǔ)言選擇
這邊說(shuō)個(gè)題外話(huà),關(guān)于當時(shí)編程語(yǔ)言的選擇,很多時(shí)候我覺(jué)得不是你選擇編程語(yǔ)言,而是編程語(yǔ)言選擇你,也就是你的“本命編程語(yǔ)言”。
人的性格會(huì )影響你適合的編程語(yǔ)言,比如你做事有條理,喜歡定期清理房間,那么可能C語(yǔ)言很適合你;如果你不喜歡打掃房間,實(shí)在受不了,才打掃一次,可能你適合Java。
哈哈,開(kāi)個(gè)玩笑,不過(guò)確實(shí)有這種很玄的存在。
我當時(shí)在編程語(yǔ)言的選擇上,用了一個(gè)笨方法。
我跑到w3cschool上面,把所有編程語(yǔ)言的第一章都去試了一遍,看看自己喜歡哪個(gè)語(yǔ)言,然后就選哪個(gè)語(yǔ)言,如果你不知道選哪門(mén)語(yǔ)言,可以用我的方法試試看。
至于編程語(yǔ)言,沒(méi)有高低之分,因為無(wú)論你學(xué)習哪門(mén)語(yǔ)言,你都非常有市場(chǎng),而且你都能夠拿到高薪,關(guān)鍵是哪門(mén)語(yǔ)言適合你,并且能夠讓你有興趣學(xué)下去,能學(xué)好,這個(gè)很關(guān)鍵。
興趣是學(xué)習編程最大的驅動(dòng)力!
為什么是Python
說(shuō)下為什么選擇Python?
因為簡(jiǎn)單,Python是公認的最容易入門(mén)的編程語(yǔ)言,而且也是公認有發(fā)展前景的編程語(yǔ)言,適用于機器人、大數據、人工智商等未來(lái)高科技。
基于以上的原因,我選擇Python來(lái)作為自己的入門(mén)語(yǔ)言,而且我覺(jué)得我適合Python這么語(yǔ)言。(因為我很懶)
之前有個(gè)梗,大概就是其他編程語(yǔ)言在討論某個(gè)問(wèn)題,怎么解決,而Python的程序員已經(jīng)下班了,由此可見(jiàn)Python的效率。
總結:Python的語(yǔ)言特點(diǎn)就是“一氣呵成,痛快如拉稀”。
學(xué)習心得
由于我是自學(xué)的,所以參考的網(wǎng)站比較多,小伙伴可以按照我的學(xué)習路線(xiàn),一般來(lái)說(shuō)不會(huì )出現什么問(wèn)題。
基礎:教程+視頻
進(jìn)階:視頻+實(shí)踐
進(jìn)階pro:視頻+實(shí)踐+書(shū)籍+交流
基礎
剛開(kāi)始學(xué)習的時(shí)候,我比較推薦w3cschool和菜鳥(niǎo)教程這兩個(gè)網(wǎng)站。
w3cschool-學(xué)編程,從w3cschool開(kāi)始!
菜鳥(niǎo)教程 - 學(xué)的不僅是技術(shù),更是夢(mèng)想!
這兩個(gè)網(wǎng)站在我看來(lái),是編程自學(xué)的福音。
w3cschool這個(gè)網(wǎng)站手冊非常棒,另外這個(gè)網(wǎng)站的編程微課以及編程實(shí)戰對新手來(lái)說(shuō)非常友好!
我當時(shí)就是靠這兩個(gè),引發(fā)我學(xué)習的樂(lè )趣,不然對著(zhù)枯燥的代碼,說(shuō)實(shí)話(huà),很無(wú)聊的。
菜鳥(niǎo)教程,這個(gè)網(wǎng)站的實(shí)例是最棒的,很多時(shí)候,你不僅僅要自己看教程,還要去看看為什么,而菜鳥(niǎo)教程的實(shí)例就能夠讓你清晰的知道,為什么,并且會(huì )原來(lái)如此。
總的來(lái)說(shuō),這兩個(gè)網(wǎng)站就像新手村剛出來(lái)的劍和盾!是新手入門(mén)絕對不能少的,尤其是w3cschool,強烈推薦。
還有一個(gè)就是視頻,視頻我是在慕課網(wǎng)上面看的,我很喜歡慕課網(wǎng)這個(gè)網(wǎng)站,網(wǎng)站風(fēng)格很棒,而且視頻也很清晰。
也可以在阿里云上面看Python的視頻,也很不錯,并且是免費的。
進(jìn)階
進(jìn)階結束后,代表你是個(gè)初級工程師。
這一步實(shí)踐非常重要,你要自己動(dòng)手,做一些小玩意,實(shí)踐才是最重要的,在實(shí)踐中發(fā)現問(wèn)題,那是學(xué)習最快并且效率最高的時(shí)刻。
你可以先給自己定下一個(gè)目標,比如我要做一個(gè)簡(jiǎn)單的頁(yè)面,或者我要做一個(gè)簡(jiǎn)單的小程序。
然后就開(kāi)始動(dòng)手去實(shí)踐,這步很重要。
同時(shí)還是要多看書(shū)籍。
進(jìn)階pro
到這一步,我建議務(wù)必買(mǎi)書(shū),你需要書(shū)籍幫你反向梳理你的知識,這決定了你以后的高度,而不是這個(gè)也懂,那個(gè)也懂,但是東西就是做不出來(lái)。
我記得當時(shí)我買(mǎi)完書(shū),看完后的第一感受就是:原來(lái)這個(gè)世界是這樣的!
書(shū)會(huì )非常系統性的幫你梳理你自己學(xué)過(guò)的知識!
這里只推薦兩本書(shū):《Python入門(mén)手冊》和《Python核心編程》
小伙伴可以自己去亞馬遜購買(mǎi)。
然后就是和身邊的小伙伴交流!
多看看別人的代碼,自己多敲敲代碼,是必經(jīng)之路,也是一定要做的。
以上,希望對想入門(mén)Python的小伙伴能夠提供一點(diǎn)點(diǎn)幫助。
1、定義方法
關(guān)鍵字 def 是方法定義的標志。接下來(lái)緊跟方法名和被圓括號所包圍的參數列表。方法的主
體語(yǔ)句將在下一行開(kāi)始并且必須縮進(jìn)。
方法主體的首句可選擇性地是一句字符,用來(lái)說(shuō)明方法的主要功能
例如:
"""print a finabo series up to """
2、默認參數值
默認值僅被設置一次,這與以前默認值為可變對象(如列表、字典和多數類(lèi)實(shí)
例時(shí))有很大的區別。
例如:
i=5
def f(arg=i):
print(arg)
i=6
f()
將會(huì )輸出 5
3、關(guān)鍵字參數
可以通過(guò)形式關(guān)鍵字參數調用方法
在方法調用中,關(guān)鍵字參數必須遵循位置參數。
所有的關(guān)鍵參數必須符合方法接受的參數
其中之一。但是他們的次序不重要,這包含非選擇的參數。沒(méi)有參數可以多次接受一個(gè)值。
當最后一個(gè)形參是__name 時(shí),它可以接受包含除了形式參數之外的所有關(guān)鍵字的字典,
name 必須在__name 之前出現
4、可變參數列表
正常來(lái)說(shuō),這些可變參數常常放在正式參數列表的后面,因為它們會(huì )包攬所有傳遞給該方法
的剩余輸入參數。任何出現在_args 參數后低的正式參數會(huì )被認為是關(guān)鍵字參數,意味著(zhù)它
們只能當關(guān)鍵字使用而不是位置參數。
>>> def concat(_args,sep="/"):
(args)
>>> concat("earth","mars","venus")
’earth/mars/venus’
>>> concat("earth","mars","venus", sep=".")
’’
5、拆分參數列表
當參數已經(jīng)存在列表或者元組中,但是需要分拆以供要求分離位置參數調用的方法,如果單獨
分開(kāi)它們無(wú)法使用,就需要寫(xiě)一個(gè)方法用 _ 操作符來(lái)調用實(shí)現分拆列表或者元組中的參數。
同樣的使用形式,字典可以用__ 操作符實(shí)現關(guān)鍵字參數。
6、形式
lamdba a,b:a+b 該函數表示兩個(gè)數的和,像內嵌函數
7、代碼風(fēng)格
對于 python,PEP8 作為許多項目應該遵守的編碼指導書(shū)而做的。
它提出了一種可讀而悅
目的編碼風(fēng)格。
每位 python 開(kāi)發(fā)者應該讀它。這里抽出一個(gè)重要的事項與你分享 :
? 用四個(gè)空格代替 tab 鍵
? 每行不要超過(guò) 79 個(gè)字符。
? 用空行分離方法和類(lèi),大塊代碼中的方法。
? 必要的時(shí)候為每行添加注釋。
? 用文檔字符串
? 在操作符兩邊用空格
? 用統一的風(fēng)格命名自定義的方法和類(lèi)
? 如果你的代碼打算用在國際環(huán)境中,請不要用想象的字符編碼。Python 默認的是
utf-8,在任何情況下可以用 Ascii .
? 同樣的,即使有很少機會(huì )讓說(shuō)不同語(yǔ)言的人們讀代碼或者維護代碼,但在定義中不
要用非 ASCII 編碼字符。
python是一門(mén)非常有潛力的高級語(yǔ)言,歷經(jīng)多年的發(fā)展,其在編程上發(fā)揮著(zhù)越來(lái)越大的作用。在這學(xué)期中,通過(guò)選修python課上的基礎知識學(xué)習,我對python也有了一定的認識。而且,在字符串上的處理,python相對于c語(yǔ)言也是給程序員極大的便利。而python不僅如此,它的庫也很多,正因為它強大的庫,讓編程變得不再艱難。但是,我認為python雖然在許多方面相對于c語(yǔ)言比較方便,但也有其相對于弱一點(diǎn)的方面,比如說(shuō)for循環(huán)等方面。雖然一學(xué)期下來(lái),我對python的學(xué)習也僅僅只是它的基礎方面,但python的強大,也是足足地吸引著(zhù)我,希望自己能夠在不斷地學(xué)習中,將python學(xué)習的更加好。
python是一門(mén)非常有潛力的高級語(yǔ)言,歷經(jīng)多年的發(fā)展,其在編程上發(fā)揮著(zhù)越來(lái)越大的作用。在這學(xué)期中,通過(guò)選修python課上的基礎知識學(xué)習,我對python也有了一定的認識。
在學(xué)習python的第一節課上,其對我的最初的印象就是,相較于我學(xué)習過(guò)的c語(yǔ)言編程,它更加的簡(jiǎn)潔。所有的變量都不需要像c語(yǔ)言編程那樣需要提前去定義,這樣給了編程者很大的自由空間與方便。如x=2,即可同時(shí)完成變量的定義與賦值。對于簡(jiǎn)化程序的代碼,起到了許多的作用。而且,在字符串上的處理,python相對于c語(yǔ)言也是給程序員極大的便利。在c語(yǔ)言中,只能用字符類(lèi)的數組對字符串進(jìn)行相應的操作,步驟也是相對于比較繁瑣的,而在python中,當我們需要創(chuàng )建一個(gè)字符串的時(shí)候,只需要在創(chuàng )建字符串的時(shí)候用“s=”就可以了。而python不僅如此,它的庫也很多,正因為它強大的庫,讓編程變得不再艱難。我們只需要調用庫中的函數,而對于函數的具體實(shí)現,也沒(méi)有特殊的需求。
但是,我認為python雖然在許多方面相對于c語(yǔ)言比較方便,但也有其相對于弱一點(diǎn)的方面,比如說(shuō)for循環(huán)等方面。不過(guò)也依然不會(huì )影響到python的強大,而隨著(zhù)近幾年來(lái)的發(fā)展,python的受歡迎度也越來(lái)越高,而它的運用的領(lǐng)域也是越來(lái)越多,比如人工智能和大數據等領(lǐng)域,python都是在其中扮演者重要的角色。雖然一學(xué)期下來(lái),我對python的學(xué)習也僅僅只是它的基礎方面,但python的強大,也是足足地吸引著(zhù)我,希望自己能夠在不斷地學(xué)習中,將python學(xué)習的更加好。