python基礎小記(Python入門筆記)

本文目錄一覽:

Python精選5篇教學心得

Python是一種跨平台的計算機程序設計語言,是一種面向對象的動態類型語言,越來越多被用於獨立的,大型項目的開發,已被逐漸廣泛應用於系統管理任務的處理和Web編程。下面給大家帶來一些關於Python 學習心得 ,希望對大家有所幫助。

python學習心得1

最近這段時間我們學習了很多內容,增長了很多關於Python的知識,萬事萬物是相通的,正如學習新的知識就像吃飯一樣。

吃多了就會消化不良,反映到學習上也是一樣,不知各位最近的感覺怎樣,反正學記是需要一些時間好好消化,掌握到手中,為下一步的知識補齊缺口。

接下來,學記和大家一起回顧一下最近學習的內容,循序漸進,循序漸進。

分支結構

分支結構就像上圖一樣,是用來選擇道路的。

所用的關鍵字是

If elif else

這三個詞的意思分別是

如果 否則如果 其他的

分支語句的寫法需要將與關鍵字與關鍵字對齊

循環結構

循環結構應用於一些重複的進程

通常我們只接觸兩種循環

for-in循環 和 while循環

for-in循環適用於

確切的知道到底循環幾次

while循環適用於

不知道到底有幾次循環

此時要搭配bool 來進行

即 True 和 Flase

關鍵字

關鍵字的熟練運用對於今後的開發工作

有非常重要的作用,但這麼多關鍵字我們不能去死記硬背

只有在一個一個代碼的驗證當中去熟悉去掌握

那樣是最可靠的

def 設置模組

len 計算字元串長度

capitalize 獲得字元串首字母大寫的拷貝

upper 獲得字元串變大寫後的拷貝

find 從字元串中查找子串所在位置

index 與find類似但找不到子串時會引發異常

startswith 檢查字元串是否以指定的字元串開頭

endswith 檢查字元串是否以指定的字元串結尾

center 將字元串以指定的寬度居中並在兩側填充指定的字元

rjust 將字元串以指定的寬度靠右放置左側 填充指定的字元

isdigit 檢查字元串是否由數字構成

isalpha 檢查字元串是否以字母構成

isalnum 檢查字元串是否以數字和字母構成

append 添加元素

remove 刪除元素

clear 清空元素

sorted 排序

大家可能會有些疑惑,學習這些東西真的有用嗎?這些隨處可見的基礎方面的知識真的有用嗎?

我可以非常肯定地告訴大家

有用的!

這些知識就像是建築工地隨處可見的磚石,不管這些磚石怎樣的不起眼,但是沒有一幢建築可以離開磚石,學習的過程是枯燥的,不過這也正符合非常現實的一條規律。

學如逆水行舟,不進則退!

也正是因為它枯燥苦悶,學習有難度,才保證了,我們學習了這些知識以後,可以靠它們為生,在這個知識時代闖出自己的一片天!

不要放棄,絕對不要放棄!

黎明之前是最黑暗的!

為了自己的未來好好堅守吧!

青年學記 陪伴著各位青年

python學習心得2

python是一門非常有潛力的高級語言,歷經多年的發展,其在編程上發揮著越來越大的作用。在這學期中,通過選修python課上的基礎知識學習,我對python也有了一定的認識。而且,在字元串上的處理,python相對於c語言也是給程序員極大的便利。而python不僅如此,它的庫也很多,正因為它強大的庫,讓編程變得不再艱難。但是,我認為python雖然在許多方 面相 對於c語言比較方便,但也有其相對於弱一點的方面,比如說for循環等方面。雖然一學期下來,我對python的學習也僅僅只是它的基礎方面,但python的強大,也是足足地吸引著我,希望自己能夠在不斷地學習中,將python學習的更加好。

python是一門非常有潛力的高級語言,歷經多年的發展,其在編程上發揮著越來越大的作用。在這學期中,通過選修python課上的基礎知識學習,我對python也有了一定的認識。

在學習python的第一節課上,其對我的最初的印象就是,相較於我學習過的c語言編程,它更加的簡潔。所有的變數都不需要像c語言編程那樣需要提前去定義,這樣給了編程者很大的自由空間與方便。如x=2,即可同時完成變數的定義與賦值。對於簡化程序的代碼,起到了許多的作用。而且,在字元串上的處理,python相對於c語言也是給程序員極大的便利。在c語言中,只能用字元類的數組對字元串進行相應的操作,步驟也是相對於比較繁瑣的,而在python中,當我們需要創建一個字元串的時候,只需要在創建字元串的時候用「s=」就可以了。而python不僅如此,它的庫也很多,正因為它強大的庫,讓編程變得不再艱難。我們只需要調用庫中的函數,而對於函數的具體實現,也沒有特殊的需求。

但是,我認為python雖然在許多方面相對於c語言比較方便,但也有其相對於弱一點的方面,比如說for循環等方面。不過也依然不會影響到python的強大,而隨著近幾年來的發展,python的受歡迎度也越來越高,而它的運用的領域也是越來越多,比如人工智慧和大數據等領域,python都是在其中扮演者重要的角色。雖然一學期下來,我對python的學習也僅僅只是它的基礎方面,但python的強大,也是足足地吸引著我,希望自己能夠在不斷地學習中,將python學習的更加好。

python學習心得3

由於我是自學Python,非科班出生,所以只能分享一些關於我的學習心得,如果有不對地方歡迎指正。

不過非科班出生雖然是一個痛點,但是在工作上,我其實不輸給我其他同事,這點我倒是很有自信,而且我也統一一句話「目前互聯網上的免費編程課程,足夠讓你成為一個合格的碼農」。

編程入門

我剛開始學習編程,主要是因為自己想動手做個網站,但是由於技術原因,再加上朋友都比較忙,最後抱著「求人不如求己」的想法,乾脆自學。

編程難不難?

這個問題我覺得所有認真學過的人,都一定會肯定告訴你編程不難,但是精通那是相當困難的。

如果你還沒去學習,就覺得編程一定很難,那麼其實你是沒有資格說這句話的,任何事情一定是要去嘗試後,才能這麼說。

編程其實很像堆積木,然後根據需求,把東西造出來,可以是房子,也可以是橋樑。

學習編程無非運用這些積木,來創造你要的東西。

編程語言選擇

這邊說個題外話,關於當時編程語言的選擇,很多時候我覺得不是你選擇編程語言,而是編程語言選擇你,也就是你的「本命編程語言」。

人的性格會影響你適合的編程語言,比如你做事有條理,喜歡定期清理房間,那麼可能C語言很適合你;如果你不喜歡打掃房間,實在受不了,才打掃一次,可能你適合Java。

哈哈,開個玩笑,不過確實有這種很玄的存在。

我當時在編程語言的選擇上,用了一個笨 方法 。

我跑到w3cschool上面,把所有編程語言的第一章都去試了一遍,看看自己喜歡哪個語言,然後就選哪個語言,如果你不知道選哪門語言,可以用我的方法試試看。

至於編程語言,沒有高低之分,因為無論你學習哪門語言,你都非常有市場,而且你都能夠拿到高薪,關鍵是哪門語言適合你,並且能夠讓你有興趣學下去,能學好,這個很關鍵。

興趣是學習編程最大的驅動力!

為什麼是Python

說下為什麼選擇Python?

因為簡單,Python是公認的最容易入門的編程語言,而且也是公認有發展前景的編程語言,適用於機器人、大數據、人工智商等未來高科技。

基於以上的原因,我選擇Python來作為自己的入門語言,而且我覺得我適合Python這麼語言。(因為我很懶)

之前有個梗,大概就是其他編程語言在討論某個問題,怎麼解決,而Python的程序員已經下班了,由此可見Python的效率。

總結 :Python的語言特點就是「一氣呵成,痛快如拉稀」。

學習心得

由於我是自學的,所以參考的網站比較多,小夥伴可以按照我的學習路線,一般來說不會出現什麼問題。

基礎:教程+視頻

進階:視頻+實踐

進階pro:視頻+實踐+書籍+交流

基礎

剛開始學習的時候,我比較推薦w3cschool和菜鳥教程這兩個網站。

w3cschool-學編程,從w3cschool開始!

菜鳥教程 – 學的不僅是技術,更是夢想!

這兩個網站在我看來,是編程自學的福音。

w3cschool這個網站手冊非常棒,另外這個網站的編程微課以及編程實戰對新手來說非常友好!

我當時就是靠這兩個,引發我學習的樂趣,不然對著枯燥的代碼,說實話,很無聊的。

菜鳥教程,這個網站的實例是最棒的,很多時候,你不僅僅要自己看教程,還要去看看為什麼,而菜鳥教程的實例就能夠讓你清晰的知道,為什麼,並且會原來如此。

總的來說,這兩個網站就像新手村剛出來的劍和盾!是新手入門絕對不能少的,尤其是w3cschool,強烈推薦。

還有一個就是視頻,視頻我是在慕課網上面看的,我很喜歡慕課網這個網站,網站風格很棒,而且視頻也很清晰。

也可以在阿里雲上面看Python的視頻,也很不錯,並且是免費的。

進階

進階結束後,代表你是個初級工程師。

這一步實踐非常重要,你要自己動手,做一些小玩意,實踐才是最重要的,在實踐中發現問題,那是學習最快並且效率最高的時刻。

你可以先給自己定下一個目標,比如我要做一個簡單的頁面,或者我要做一個簡單的小程序。

然後就開始動手去實踐,這步很重要。

同時還是要多看書籍。

進階pro

到這一步,我建議務必買書,你需要書籍幫你反向梳理你的知識,這決定了你以後的高度,而不是這個也懂,那個也懂,但是東西就是做不出來。

我記得當時我買完書,看完後的第一感受就是:原來這個世界是這樣的!

書會非常系統性的幫你梳理你自己學過的知識!

這裡只推薦兩本書:《Python入門手冊》和《Python核心編程》

小夥伴可以自己去亞馬遜購買。

然後就是和身邊的小夥伴交流!

多看看別人的代碼,自己多敲敲代碼,是必經之路,也是一定要做的。

以上,希望對想入門Python的小夥伴能夠提供一點點幫助。

python學習心得4

017年11月,一群編程零基礎的小夥伴們成立了Python學習小組,12名學員從此夜以繼日地奔赴學習的征程。一個月過去了,從在屏幕上用最簡單的語句列印出「Hello, Python; Hello, World」開始,我們逐步地學習Python語法,學習操作列表、字典,學習For,While,If語句,現在遇到了第一個難點:類。通過研讀、練習、交流、討論,作為程序界的小白,我們逐步地理解了類的概念,明白了面向對象與面向過程編程的差異,以下是我們的小小心得,與大家分享:

編程基本思想

現實世界中,每個複雜的事務都可以拆分為多個組成部分,其中的每一部分就可稱之為對象。比如要實現一個很大很複雜的項目,我們可以把項目拆分成不同的組成部分,然後分別對不同部分通過編程實現,最終再把各個部分組裝起來完成整個項目。這讓我們能夠從整體上來控制項目,從而讓程序開發更有效。

比如汽車製造,汽車廠所做的僅僅是各個部件的組裝和匹配,而各個部件的生產是由相對專業的廠商完成。如果需要研發新型號汽車,整車廠所考慮的是如何對各個新式的零部件進行新的組裝和匹配,而不是從頭到尾重新生產一輛汽車。

面向對象的編程

VS

面向過程的編程

面向過程編程是針對一個需求的具體實現過程,但是對於大型項目的複雜需求,一步一步的做,這種編程效率顯然是低下的。

面向對象編程則是對項目進行拆分後(一般按照功能拆分),分別實現,再將各個對象組裝起來。因此簡單的小程序使用面向過程方法編程更適合。面向對象的編程特性是易維護(可讀性高),效率高,質量高(重用性),擴展性好(高內聚,低耦合)。

對象

通俗的講,對象就是事物,一個公司、一個部門、一個人,甚至一本書都可以是一個對象,程序員可以自由決定把什麼作為對象。

比如eHR系統,需要對組織架構,員工進行管理,所以使用的對象可能是公司,部門,崗位,員工,等等。對象可大可小,可複雜也可簡單,如果僅僅是做一個考勤系統,員工這個對象一定要比eHR系統中的員工對象簡單。

現實世界中,類代表一組有共同特性的事物,把不同對象之間的共性抽象出來,就形成類的概念。比如說男人、女人可以抽象成人這個類;處長、秘書可以抽象成員工類。至於類如何去抽象,粒度的粗細,這是一個需要在學習和實踐中摸索的過程。

實例

以下是一個實例,大家體會一下:

1. 定義父類:

class Employee:

def __init__(self, name, age): #抽象員工共性(名字,年齡)

self.name = name

self.age = age

def signON(self):

print(self.name+” sign on.”) #抽象簽到的動作

def work(self):

print(self.name + ” on work.”) #抽象工作的動作

2. 繼承出子類:

class MEmployee(Employee): #繼承父類的共性

def __init__(self, name, age):

super().__init__(name, age)

def work(self): #重寫子類的方法(抽象出從事管理崗位工作的動作)

print(self.name + ” on manager_work.”)

3. 繼承出第二個子類:

class TEmployee(Employee):

def __init__(self, name, age, devLanguage): #繼承父類的共性,增加語言的屬性

super().__init__(name, age)

self.devLanguage = devLanguage

def work(self): #重寫子類的方法(抽象出從事技術崗位工作的動作)

print(self.name + ” on technology_work.”)

def showLanguage(self): #增加子類的方法(抽象出會某種編程語言的動作)

print(“use “+self.devLanguage+” language.”)

在上面的程序中,我們先定義了一個父類:包含員工的姓名、年齡等一般特性,可以執行簽到、工作這兩類動作。在第一個子類中,管理層在前面一般特性的基礎上,執行管理工作;在第二個子類中,作為一般員工在前面一般特性的基礎上,執行技術工作,從事編程。

python學習心得5

1、定義方法

關鍵字 def 是方法定義的標誌。接下來緊跟方法名和被圓括弧所包圍的參數列表。方法的主

體語句將在下一行開始並且必須縮進。

方法主體的首句可選擇性地是一句字元,用來說明方法的主要功能

例如:

“””print a finabo series up to n.”””

2、默認參數值

默認值僅被設置一次,這與以前默認值為可變對象(如列表、字典和多數類實

例時)有很大的區別。

例如:

i=5

def f(arg=i):

print(arg)

i=6

f()

將會輸出 5

3、關鍵字參數

可以通過形式關鍵字參數調用方法

在方法調用中,關鍵字參數必須遵循位置參數。 所有的關鍵參數必須符合方法接受的參數

其中之一。但是他們的次序不重要,這包含非選擇的參數。沒有參數可以多次接受一個值。

當最後一個形參是__ name 時,它可以接受包含除了形式參數之外的所有關鍵字的字典,

_ name 必須在__ name 之前出現

4、可變參數列表

正常來說,這些可變參數常常放在正式參數列表的後面,因為它們會包攬所有傳遞給該方法

的剩餘輸入參數。任何出現在_ args 參數後低的正式參數會被認為是關鍵字參數,意味著它

們只能當關鍵字使用而不是位置參數。

def concat(_ args,sep=”/”):

…returnsep.join(args)

concat(“earth”,”mars”,”venus”)

』earth/mars/venus』

concat(“earth”,”mars”,”venus”, sep=”.”)

』earth.mars.venus』

5、拆分參數列表

當參數已經存在列表或者元組中,但是需要分拆以供要求分離位置參數調用的方法,如果單獨

分開它們無法使用,就需要寫一個方法用 _ 操作符來調用實現分拆列表或者元組中的參數。

同樣的使用形式,字典可以用__ 操作符實現關鍵字參數。

6、形式

lamdba a,b:a+b 該函數表示兩個數的和,像內嵌函數

7、代碼風格

對於 python,PEP8 作為許多項目應該遵守的編碼指導書而做的。 它提出了一種可讀而悅

目的編碼風格。 每位 python 開發者應該讀它。這裡抽出一個重要的事項與你分享 :

? 用四個空格代替 tab 鍵

? 每行不要超過 79 個字元。

? 用空行分離方法和類,大塊代碼中的方法。

? 必要的時候為每行添加註釋。

? 用文檔字元串

? 在操作符兩邊用空格

? 用統一的風格命名自定義的方法和類

? 如果你的代碼打算用在國際環境中,請不要用想像的字元編碼。Python 默認的是

utf-8,在任何情況下可以用 Ascii .

? 同樣的,即使有很少機會讓說不同語言的人們讀代碼或者維護代碼,但在定義中不

要用非 ASCII 編碼字元。

Python淺薄的基礎小結上

Python 支持四種不同的數值類型:

整型(Int) – 通常被稱為是整型或整數,是正或負整數,不帶小數點。

長整型(long integers) – 無限大小的整數,整數最後是一個大寫或小寫的L。

浮點型(floating point real values) – 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102= 250)

複數(complex numbers) – 複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。

在Phton中常見的運算加、減、乘、除、求余、冪指數等,同現實生活中的遵循一樣的優先順序。即,乘除運算高於加減運算。例:

Python內置複數的計算支持所有常見複數的計算,對複數處理的數學函數在模塊cmath中:

字元串或串(String)是由數字、字母、下劃線組成的一串字元。Python字元串最大的特點是 不可修改, 只能生成新的字元串,用 雙引號或單引號 都可以表示字元串,多行字元串用三個連續單引號表示,特殊字元用轉義符 「\” 表示如: 製表符”\t”,換行符”\n”

str=’Hello World!’

print  str*2   # 輸出字元串兩次

Hello World!Hello World!

print  str+”TEST”   # 輸出連接的字元串

Hello World!TEST

len(‘str’)   #輸出字元串的長度

12

python的 字串列表 有2種取值順序:

從左到右索引默認0開始的,最大範圍是字元串長度少1

從右到左索引默認-1開始的,最大範圍是字元串開頭

如果你要實現從字元串中獲取一段子字元串的話,可以使用變數 [頭下標:尾下標] ,就可以截取相應的字元串,其中下標是從 0 開始算起,可以是正數或負數,下標可以為空表示取到頭或尾。比如:

s = ‘ilovepython’

s[1:5] 的結果是 love。

當使用以冒號分隔的字元串,python返回一個新的對象,結果包含了以這對偏移標識的連續的內容,左邊的開始是包含了下邊界。

上面的結果包含了s[1]的值l,而取到的最大範圍不包括上邊界,就是s[5]的值p。

‘abcd'[3:1:-1]  #從右到左

‘dc’

一些高級操作:

s=’You are my sunshine’

s.split(‘ ‘)

[‘You’ ,’are’, ‘my’ ,’sunshine’]

t=[‘one’,’for’,’two’]

‘ ‘.join(t)

‘one for two’

t=’Mike and Tom’

t.replace(‘Tom’,’jane’)

‘Mike and jane’

python變數的概念和初中代數的方程變數一致,變數就像貼在東西上的標籤,命名規則:大小寫英文、數字和下劃線,且不能用數字開頭,變數可以反覆賦值,而且可以是不同類型的變數

序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 – 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。

Python有6個序列的內置類型,但最常見的是列表和元組。

序列都可以進行的操作包括索引,切片,加,乘,檢查成員。

此外,Python已經內置確定序列的長度以及確定最大和最小的元素的方法。

列表 是最常用的Python數據類型,它可以作為一個方括弧內的逗號分隔值出現。

列表的數據項不需要具有相同的類型

創建一個列表,只要把逗號分隔的不同的數據項使用方括弧括起來即可。

[]  #創建空的列表

[]

list() #創建空的列表

[]

alist=[‘physics’,’chemistry’,1997,2000]

[‘physics’,’chemistry’,1997,2000]

List(列表) 是 Python 中使用最頻繁的數據類型。

列表可以完成大多數集合類的數據結構實現。它支持字元,數字,字元串甚至可以包含列表(即嵌套)。

列表用[ ]標識,是 python 最通用的複合數據類型。

列表中值的切割也可以用到變數[頭下標:尾下標],就可以截取相應的列表,從左到右索引默認 0 開始,從右到左索引默認 -1 開始,下標可以為空表示取到頭或尾。

list=[‘runoob’, 786, 2.23, ‘john’, 70.2]

tinylist=[123, ‘john’]

print list  # 輸出完整列表

[‘runoob’, 786, 2.23, ‘john’, 70.2]

‘runoob’ in alist  #某個元素是否存在

True

print list[0]   # 輸出列表的第一個元素

runoob

print list[1:3]   # 輸出第二個至第三個元素

[786,2.23]

print list[2:]   # 輸出從第三個開始至列表末尾的所有元素

[2.23,’john’,70.2]

print tinylist*2   # 輸出列表兩次

[123,’john’,123,’john’]

print list+tinylist   # 列印組合的列表

[‘runoob’,786,2.23,’john’,70.2,123,’john’]

Python的元組 與列表類似,不同之處在於元組的元素不能修改。

元組使用小括弧,列表使用方括弧。

元組創建很簡單,只需要在括弧中添加元素,並使用逗號隔開即可。

()  #創建空的元組

()

tuple()  #創建空的元組

()

元組中只包含一個元素時,需要在元素後面添加逗號如:tup1=(50,);

tup=(1,True,0.234,”holle”)

同列表相似 元組 適用:

+ :鏈接兩個元組

* :複製n次,生成新的元組

in :某個元素是否存在

[start:end:step] :切片

值得注意的是元組是不可以更新的( 不可變) 序列,但我們可以對元組進行連接組合生成新的元組如:

tup1=(12,34.56)

tup2=(‘abc’,’xyz’)

tup3= tup1+tup2

print tup3

(12,34.56,’abc’,’xyz’)

任意無符號的對象,以逗號隔開,默認為元組。

字典是另一種可變容器模型,且可存儲任意類型對象。

字典的每個鍵值(key=value)對用冒號( : )分割,每個對之間用逗號( , )分割,整個字典包括在花括弧( {}) 中 ,格式如下所示:

d= {key1:value1,key2:value2}

鍵必須是唯一的,但值則不必。

值可以取任何數據類型,但鍵必須是不可變的,如字元串,數字或元組。

字典是可變類型,可以添加,刪除,替換

如何系統地自學Python?你知道哪些相關的學習小技巧?

Python即計算機高級編程語言,能夠簡單有效的面向對象編程,它的本質就是ABC語言的替代品,想要自學就要先學會編程,在基礎入門時,就需要對自己有一個清醒的認知,掌握編程語言,要能夠看得懂複雜的編程代碼,清楚自己學習編程的目標,朝著既定目標前進,嘗試收集一些相關資料,建立牢固的編程思維,在看到無法理解的代碼時,可以選擇輔助工具幫忙理解。

打好Python基礎之後,這時候就可以學習基礎的數據分析工作用法,購買一些關於學習Python編程的書本,了解Python是什麼,知道變數,演算法和解釋器之間的關係,懂得Python的基本數據類型和操作方法,並學會使用字典進行參考和查閱,在學習的過程中定期地記筆記也是必要的,可以加深印象,最好的情況是尋找業內對這些知識有深刻了解的人教自己。

學習Python編程,要熟練掌握編程工具,像excel就需要把握好數據分析,要將書本知識結合實際操作來進行,在學習Python編程之前,也要系統地學習統計學,經濟管理學等,學會這些高級的統計概率知識,將需要學習領域的知識點進行匯總和整理,就可以進行初級階段的Python編程學習,編寫代碼了。

想要更好地學習Python編程技術,就像學生學習那樣進行刷題,鞏固所學知識,提高編程效率,遇到困難時,不輕言放棄,遇到程序錯誤和異常時,多查找原因,詢問前輩,積極動手實踐解決,總的來說,就是要多學多看多練,學習Python編程技術,從來都不是一蹴而就的,要努力堅持下去,最後,不要為了學習一門編程語言而去學習,從始至終不要忘記自己學習Python編程的目標。

PHP開發人員的Python基礎知識

PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。那麼PHP開發人員的Python基礎知識都有哪些呢?以下僅供參考!

常用縮略語

Ajax:非同步 JavaScript + XML

XML:可擴展標記語言(Extensible Markup Language)

什麼是 Python?

Python 的定義是一種 「通用的高級編程語言」。它以簡潔性和易用性著稱,而且是少有的幾種對空格和縮進有要求的語言之一。Python 的主要作者 Guido Van Rossum 在社區中仍然非常活躍,並且被人們戲稱為仁慈的領導。

Python 的靈活性和緊湊性是值得稱讚的。它支持面向對象編程、結構化編程、面向方面編程以及函數編程等。Python 採用小內核設計,但具備大量擴展庫,從而確保了該語言的緊湊性和靈活性。

從語法的角度來說,您會發現 Python 的簡潔性異常突出——幾乎可以說是一種純粹的境界。PHP 開發人員要麼會對這種方法的語法深深陶醉,要麼會發現它的局限性。這主要取決於您自己的見解。Python 社區推動這種美感的態度是非常明確的,它們更加重視的是美學和簡潔性,而不是靈動的技巧。已形成 Perl 傳統(「可以通過多種方式實現它」)的 PHP 開發人員(像我自己)將面對一種完全相反的哲學(「應該只有一種方法可以實現它」)。

事實上,該社區定義了一種特有的代碼風格術語,即 Python 化(pythonic)。您可以說您的代碼是 Python 化,這是對 Python 術語的良好運用,同時還可展現語言的自然特性。本文並不打算成為 Pythonista(或 Pythoneer),但如果您想繼續 Python 之路,那麼千萬不能錯過本文的知識點。就像 PHP 有自己的編程風格,Perl 有自己的概念方法,學習 Python 語言必然也需要開始用該語言來思考問題。

另一個要點:在撰寫本文時,Python 的最新版本是 V3.0,但本文主要側重於 Python V2.6。Python V3.0 並不能向後兼容之前的版本,而且 V2.6 是使用最為廣泛的版本。當然,您可以根據需求使用自己喜好的版本。

Python 與 PHP 有何不同?

一般來說,PHP 是一種 Web 開發語言。是的,它提供了一個命令行介面,並且甚至可用於開發嵌入式應用程序,但它主要還是用於 Web 開發。相反,Python 是一種腳本語言,並且也可用於 Web 開發。從這方面來說,我知道我會這樣說——它比 PHP 更加接近 Perl。(當然,在其他方面,它們之間並無實際不同。我們繼續往下看。)

PHP 的語法中充斥著美元符號($)和大括弧({}),而 Python 相對來說則更加簡潔和乾淨。PHP 支持 switch 和 do…while 結構,而 Python 則不盡然。PHP 使用三元操作符(foo?bar:baz)和冗長的函數名列表,而命名約定更是無所不有;相反,您會發現 Python 要簡潔多了。PHP 的數組類型可同時支持簡單列表和字典或散列,但 Python 卻將這兩者分開。

Python 同時使用可變性和不變性的概念:舉例來說,tuple 就是一個不可變的列表。您可以創建 tuple,但在創建之後不能修改它。這一概念可能要花些時間來熟悉,但對於避免錯誤極為有效。當然,更改 tuple 的惟一方法是複製它。因此,如果您發現對不可變對象執行了大量更改,則應該重新考量自己的方法。

之前提到,Python 中的縮進是有含義的:您在剛開始學習該語言時會對此非常難以適應。您還可以創建使用關鍵字作為參數的函數和方法——這與 PHP 中的標準位置參數迥然不同。面向對象的追隨者會對 Python 中真正的面向對象思想感到欣喜,當然還包括它的 「一級」 類和函數。如果您使用非英語語言,則會鍾愛於 Python 強大的.國際化和 Unicode 支持。您還會喜歡 Python 的多線程功能;這也是最開始令我為之著迷的特性之一。

綜上所述,PHP 和 Python 在許多方面都彼此類似。您可以方便地創建變數、循環,使用條件和創建函數。您甚至可以輕鬆地創建可重用的模塊。兩種語言的用戶社區都充滿活力和激情。PHP 的用戶群體更加龐大,但這主要歸因於它在託管伺服器及 Web 專註性方面的優勢和普及性。

很好 簡要介紹到此為止。我們開始探索之旅。

使用 Python

清單 1 展示了一個基本的 Python 腳本。

清單 1. 一個簡單的 Python 腳本

for i in range(20):

print(i)

清單 2 展示了腳本的必然結果。

清單 2. 清單 1 的結果

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

在深入探索之前,我們先來了解一些預備知識。首先從變數開始。

變數

可以看到,表示變數並不需要任何特殊的字元。變數 i 就是一個純粹的 i——毫無特殊之處。表示代碼塊或語言結束也不需要任何特殊字元(比如分號和括弧);只需要在 for 行使用一個簡單的冒號即可(:)。還需注意,縮進會向 Python 指示哪些內容屬於 for 循環。舉例來說,清單 3 中的代碼會在循環中為各編號輸出一個說明。

清單 3. 為各循環添加一條語句

for i in range(20):

print(i)

print(‘all done?’)

相反,清單 4 中的代碼會在循環結束處輸出一條說明。

清單 4. 在循環後添加一條語句

for i in range(20):

print(i)

print(‘all done!’)

現在,我第一次看到這樣的代碼時,我認為這完全是無稽之談。什麼?讓我相信換行和縮進能保證代碼的結構和運行?請相信我,不用多久,您就會習慣它(但我需要承認必須到達到分號處才會結束語句的運行)。如果您與其他開發人員共同開發 Python 項目,則會發現這種可讀性的用處是多麼大了。您不再像以前那樣總是猜測 「這個聰明的傢伙在這裡究竟想幹些什麼?」

在 PHP,您使用 = 操作符為變數分配值(參見 清單 5)。在 Python 中,您使用相同的操作符,只是需要標記或指向值。對於我來說,它就是賦值操作而已,我不需要過多擔心專門的術語。

清單 5. 創建變數

yorkie = ‘Marlowe’ #meet our Yorkie Marlowe!

mutt = ‘Kafka’  #meet our mutt Kafka

print(mutt) #prints Kafka

Python 的變數名稱約定與 PHP 類似:您在創建變數名時只能使用字母、數字和下劃線(_)。同樣,變數名的第一個字元不能是數字。Python 變數名是區分大小寫的,並且您不能使用特定的 Python 關鍵字(比如 if、else、while、def、or、and、not、in 和 is 開始符)作為變數名。這沒有什麼值得奇怪的。

Python 允許您隨意執行基於字元串的操作。清單 6 中的大多數操作應該都是您熟悉的。

清單 6. 常見的基於字元串的操作

yorkie = ‘Marlowe’

mutt = ‘Kafka’

ylen = len(yorkie) #length of variable yorkie

print(ylen) #prints 7

print(len(yorkie)) #does the same thing

len(yorkie) #also does the same thing, print is implicit

print(yorkie.lower()) #lower cases the string

print(yorkie.strip(‘aeiou’)) #removes vowels from end of string

print(mutt.split(‘f’)) #splits “Kafka” into [‘Ka’, ‘ka’]

print(mutt.count(‘a’)) #prints 2, the number of a’s in string

yorkie.replace(‘a’,’4′) #replace a’s with 4’s

條件語句

您已經了解了如何使用 for 循環;現在,我們來討論條件語句。您會發現 Phyon 中的條件語句與 PHP 基本相同:您可以使用熟悉的 if/else型結構,如清單 7 所示。

清單 7. 一個簡單的條件測試

yorkie = ‘Marlowe’

mutt = ‘Kafka’

if len(yorkie) len(mutt):

print(‘The yorkie wins!’)

else:

print(‘The mutt wins!’)

您還可以使用 if/elif/else(elif,等價於 PHP 中的 elseif)創建更加複雜的條件測試,如清單 8 所示。

清單 8. 一個比較複雜的條件測試

yorkie = ‘Marlowe’

mutt = ‘Kafka’

if len(yorkie) + len(mutt) 15:

print(‘The yorkie and the mutt win!’)

elif len(yorkie) + len(mutt) 10:

print(‘Too close to tell!’)

else:

print(‘Nobody wins!’)

您可能會說,目前為止並沒有什麼與眾不同的地方:甚本上和想像中沒有太大區別。現在,我們來看 Python 處理列表的方式,您會發現兩種語言之間的不同之處。

列表

一種常用的列表類型是 tuple,它是不可變的。在 tuple 中載入一系列值之後,您不會更改它。Tuple 可以包含數字、字元串、變數,甚至其他 tuples。Tuples 從 0 開始建立索引,這很正常;您可以使用 -1 索引訪問最後一個項目。您還可以對 tuple 運行一些函數(請參見清單 9)。

清單 9. Tuples

items = (1, mutt, ‘Honda’, (1,2,3))

print items[1] #prints Kafka

print items[-1] #prints (1,2,3)

items2 = items[0:2] #items2 now contains (1, ‘Kafka’) thanks to slice operation

‘Honda’ in items #returns TRUE

len(items) #returns 4

items.index(‘Kafka’) #returns 1, because second item matches this index location

列表與 tuple 類似,只不過它們是可變的。創建列表之後,您可以添加、刪除和更新列表中的值。列表使用方括弧,而不是圓括弧(()),如清單 10 所示。

清單 10. 列表

groceries = [‘ham’,’spam’,’eggs’]

len(groceries) #returns 3

print groceries[1] #prints spam

for x in groceries:

print x.upper() #prints HAM SPAM EGGS

groceries[2] = ‘bacon’

groceries #list is now [‘ham’,’spam’,’bacon’]

groceries.append(‘eggs’)

groceries #list is now [‘ham’, ‘spam’, ‘bacon’, ‘eggs’]

groceries.sort()

groceries #list is now [‘bacon’, ‘eggs’, ‘ham’, ‘spam’]

字典類似於關聯數組或散列;它使用鍵值對來存儲和限制信息。但它不使用方括弧和圓括弧,而是使用尖括弧。與列表類似,字典是可變的,這意味著您可以添加、刪除和更新其中的值(請參見清單 11)。

清單 11. 字典

colorvalues = {‘red’ : 1, ‘blue’ : 2, ‘green’ : 3, ‘yellow’ : 4, ‘orange’ : 5}

colorvalues #prints {‘blue’: 2, ‘orange’: 5, ‘green’: 3, ‘yellow’: 4, ‘red’: 1}

colorvalues[‘blue’] #prints 2

colorvalues.keys() #retrieves all keys as a list:

#[‘blue’, ‘orange’, ‘green’, ‘yellow’, ‘red’]

colorvalues.pop(‘blue’) #prints 2 and removes the blue key/value pair

colorvalues #after pop, we have:

#{‘orange’: 5, ‘green’: 3, ‘yellow’: 4, ‘red’: 1}

在 Python 中創建一個簡單的腳本

現在,您已經對 Python 有了一定的了解。接下來,我們將創建一個簡單的 Python 腳本。該腳本將讀取位於您的伺服器 /tmp 目錄下的 PHP 會話文件的數量,並在日誌文件中寫入摘要報告。在該腳本中,您將學習如何導入特定函數的模塊,如何使用文件,以及如何寫入日誌文件。您還將設置一系列變數來跟蹤所收集的信息。

清單 12 展示了整個腳本。打開一個編輯器,並將代碼粘貼到其中,然後在系統中將該文件保存為 tmp.py。然後,對該文件運行 chmod + x,使它成為可執行文件(假定您使用 UNIX? 系統)。

清單 12. tmp.py

#!/usr/bin/python

import os

from time import strftime

stamp = strftime(“%Y-%m-%d %H:%M:%S”)

logfile = ‘/path/to/your/logfile.log’

path = ‘/path/to/tmp/directory/’

files = os.listdir(path)

bytes = 0

numfiles = 0

for f in files:

if f.startswith(‘sess_’):

info = os.stat(path + f)

numfiles += 1

bytes += info[6]

if numfiles 1:

title = ‘files’

else:

title = ‘file’

string = stamp + ” — ” + str(numfiles) + ” session ”

+ title +”, ” + str(bytes) + ” bytes “

file = open(logfile,”a”)

file.writelines(string)

file.close()

在第一行中,您可以看到一個 hash-bang 行:它用於標識 Python 解釋器的位置。在我的系統中,它位於 /usr/bin/python。請根據系統需求調整這一行。

接下來的兩行用於導入特定的模塊,這些模塊將幫助您執行作業。考慮到腳本需要處理文件夾和文件,因此您需要導入 os 模塊,因為其中包含各種函數和方法,可幫助您列出文件、讀取文件和操作文件夾。您還需要寫入一個日誌文件,因此可以為條目添加一個時間戳 — 這就需要使用時間函數。您不需要所有時間函數,只需要導入 strftime函數即可。

在接下來的六行中,您設置了一些變數。第一個變數是 stamp,其中包含一個日期字元串。然後,您使用 strftime 函數創建了一個特定格式的時間戳 — 在本例中,時間戳的格式為 2010-01-03 12:43:03。

接下來,創建一個 logfile 變數,並在文件中添加一個實際存儲日誌文件消息的路徑(該文件不需要實際存在)。為簡單起見,我在 /logs 文件夾中放置了一個日誌文件,但您也可以將它放置在別處。同樣,path 變數包含到 /tmp 目錄的路徑。您可以使用任何路徑,只要使用斜杠作為結束即可 (/)。

接下來的三個變數也非常簡單:files 列表包含指定路徑中的所有文件和文件夾,另外還包含 bytes 和 numfiles 兩個變數。這兩個變數都設置為 0;腳本會在處理文件時遞增這些值。

完成所有這些定義之後,接下來就是腳本的核心了:一個簡單的 for 循環,用於處理文件列表中的各文件。每次運行循環時,腳本都會計算文件名;如果它以 sess_ 開頭,則腳本會對該文件運行 os.stat(),提取文件數據(比如創建時間、修改時間和位元組大小),遞增 numfiles 計數器並將該文件的位元組大小累計到總數中。

當循環完成運行後,腳本會檢查 numfiles 變數中的值是否大於 1。如果大於 1,則會將一個新的 title 變數設置為 files;否則,title 將被設置為單數形式的 file。

腳本的最後部分也非常簡單:您創建了一個 string 變數,並在該變數中添加了一行以時間戳開始的數據,並且其後還包含 numfiles(已轉換為字元串)和位元組(也已轉換為字元串)。請注意繼續字元();該字元可允許代碼運行到下一行。它是一個提高可讀性的小技巧。

然後,您使用 open() 函數以附加模式打開日誌文件(畢竟始終需要在該文件中添加內容),writelines() 函數會將字元串添加到日誌文件中,而 close() 函數用於關閉該文件。

現在,您已經創建了一個簡單的 Python 腳本。該腳本可用於完成許多任務,舉例來說,您可以設置一個 cron作業來每小時運行一次這個腳本,以幫助您跟蹤 24 小時內所使用的 PHP 會話的數量。您還可以使用 jQuery 或其他一些 JavaScript 框架通過 Ajax 連接這個腳本,用於為您提供日誌文件提要(如果採用這種方式,則需要使用 print命令來返回數據)。

Python語法小記憶

Python 中的字元串還支持轉義字元。所謂轉義字元是指使用反斜杠「\」對一些特殊字元進行轉義。

轉義字元說明

\ 續行符

\n 換行符

\0 空

\t 水平製表符,用於橫向跳到下一製表位

\” 雙引號

\’ 單引號

\\ 一個反斜杠

\f 換頁

\0dd 八進位數,dd 代表字元,如\012 代表換行

\xhh 十六進位數,hh 代表字元,如\x0a 代表換行

在Python 中,提供了如下表所示的函數進行數據類型的轉換。

函數作用

int(x) 將x 轉換成整數類型

float(x) 將x 轉換成浮點數類型

complex(real [,imag]) 創建一個複數

str(x) 將x 轉換為字元串

repr(x) 將x 轉換為表達式字元串

eval(str) 計算在字元串中的有效Python 表達式,並返回一個對象

chr(x) 將整數x 轉換為一個字元

ord(x) 將一個字元x 轉換為它對應的整數值

hex(x) 將一個整數x 轉換為一個十六進位字元串

oct(x) 將一個整數x 轉換為一個八進位的字元串

賦值運算符主要用來為變數等賦值。使用時,可以直接把基本賦值運算符「=」右邊的值賦給左邊的變數,也可以進行某些運算後再賦值給左邊的變數。在Python 中常用的賦值。

運算符如下表所示。

運算符說明舉例展開形式

= 簡單的賦值運算x=y x=y

+= 加賦值x+=y x=x+y

-= 減賦值x-=y x=x-y

*= 乘賦值x*=y x=x*y

/= 除賦值x/=y x=x/y

%= 取餘數賦值x%=y x=x%y

**= 冪賦值x**=y x=x**y

//= 取整除賦值x//=y x=x//y

比較運算符,也稱關係運算符,用於對變數或表達式的結果進行大小、真假等比較,如果比較結果為真,則返回True,如果為假,則返回False。比較運算符通常用在條件語句中作為判斷的依據。Python 中的比較運算符如下表所示。

運算符作用舉例結果

大於’a’ ‘b’ False

小於156 456 True

== 等於’c’ == ‘c’ True

!= 不等於’y’ != ‘t’ True

= 大於或等於479 = 426 True

= 小於或等於62.45 = 45.5 False

邏輯運算符是對真和假兩種布爾值進行運算,運算後的結果仍是一個布爾值,Python中的邏輯運算符主要包括and(邏輯與)、or(邏輯或)、not(邏輯非)。

運算符含義用法結合方向

and 邏輯與op1 and op2 從左到右

or 邏輯或op1 or op2 從左到右

not 邏輯非not op 從右到左

所謂運算符的優先順序,是指在應用中哪一個運算符先計算,哪一個後計算,與數學的四則運算應遵循的「先乘除,後加減」是一個道理。

下表按從高到低的順序列出了運算符的優先順序。同一行中的運算符具有相同優先順序,此時它們的結合方向決定求值順序。

運算符說明

** 冪

~、+、- 取反、正號和負號

*、/、%、// 算術運算符

+、- 算術運算符

、 位運算符中的左移和右移

位運算符中的位與

^ 位運算符中的位異或

| 位運算符中的位或

、=、、=、!=、== 比較運算符

在Python 中,使用內置函數input()可以接收用戶的鍵盤輸入。input()函數的基本用法如下:

variable = input("提示文字")

其中,variable 為保存輸入結果的變數,雙引號內的文字用於提示要輸入的內容。

默認的情況下,在Python中,使用內置的print()函數可以將結果輸出到IDLE或者標準控制台上。其基本語法格式如下:

Print(輸出內容)

其中,輸出內容可以是數字和字元串(字元串需要使用引號括起來),此類內容將直接

輸出,也可以是包含運算符的表達式,此類內容將計算結果輸出。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291994.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 14:07
下一篇 2024-12-25 14:07

相關推薦

  • Python wordcloud入門指南

    如何在Python中使用wordcloud庫生成文字雲? 一、安裝和導入wordcloud庫 在使用wordcloud前,需要保證庫已經安裝並導入: !pip install wo…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Python小波分解入門指南

    本文將介紹Python小波分解的概念、基本原理和實現方法,幫助初學者掌握相關技能。 一、小波變換概述 小波分解是一種廣泛應用於數字信號處理和圖像處理的方法,可以將信號分解成多個具有…

    編程 2025-04-29
  • 數據結構與演算法基礎青島大學PPT解析

    本文將從多個方面對數據結構與演算法基礎青島大學PPT進行詳細的闡述,包括數據類型、集合類型、排序演算法、字元串匹配和動態規劃等內容。通過對這些內容的解析,讀者可以更好地了解數據結構與算…

    編程 2025-04-29
  • 樹莓派DIY無人機一:製作基礎

    本文將介紹如何使用樹莓派製作一個可飛行的小型無人機。本文將介紹樹莓派的選型、比例積木的使用、無線電通信以及如何控制飛行器的基本運動。 一、樹莓派的選型 在DIY無人機中,樹莓派是必…

    編程 2025-04-29
  • Python零基礎PDF下載

    本文將為大家介紹如何使用Python下載PDF文件,適合初學者上手實踐。 一、安裝必要的庫 在Python中,我們需要使用urllib和requests庫來獲取PDF文件的鏈接,並…

    編程 2025-04-29
  • Python豎線圖:從入門到精通

    Python豎線圖,即Python的繪圖工具matplotlib中的一種圖形類型,具有直觀、易於理解的特點,適用於各種數據分析和可視化場景。本文從初學者角度出發,介紹Python豎…

    編程 2025-04-29
  • Polyphone音頻編輯器基礎入門教程

    Polyphone是一款免費的音頻編輯器,可用於編輯.sf2和.sfz格式的音色庫。本文將詳細介紹Polyphone的基礎操作及使用方法。 一、安裝和簡介 首先,我們需要下載並安裝…

    編程 2025-04-29
  • Python爬取數據指南-從入門到精通

    Python爬蟲是指用Python編寫程序,自動化地獲取網路上的信息,並進行處理、分析和存儲。以下是Python爬取數據的指南,從入門到精通。 一、獲取網頁數據 Python爬蟲的…

    編程 2025-04-29
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28

發表回復

登錄後才能評論