python學習記錄1

2021-08-17 14:33:42 字數 3372 閱讀 1245

1. 第乙個python程式

在python互動式模式下,可以直接輸入**,然後執行,並立刻得到結果。

在命令列模式下,可以直接執行.py檔案。

在python的互動式命令列寫程式,好處是一下就能得到結果,壞處是沒法儲存,下次還想執行的時候,還得再敲一遍。

所以,實際開發的時候,我們總是使用乙個文字編輯器來寫**,寫完了,儲存為乙個檔案,這樣,程式就可以反覆執行了。

必須要以.py結尾,其他的都不行。此外,檔名只能是英文本母、數字和下劃線的組合。

如果當前目錄下沒有hello.py這個檔案,執行python hello.py就會報錯。

以#開頭的語句是注釋,注釋是給人看的,可以是任意內容,直譯器會忽略掉注釋。其他每一行都是乙個語句,當語句以冒號:結尾時,縮排的語句視為**塊。

縮排有利有弊。好處是強迫你寫出格式化的**,但沒有規定縮排是幾個空格還是tab。按照約定俗成的管理,應該始終堅持使用4個空格的縮排。

請務必注意,python程式是大小寫敏感的,如果寫錯了大小寫,程式會報錯。

2. pathon基礎

2.1 資料型別和變數

如果字串內部既包含』又包含」怎麼辦?可以用轉義字元\來標識,比如:

在python中,等號=是賦值語句,可以把任意資料型別賦值給變數,同乙個變數可以反覆賦值,而且可以是不同型別的變數。

在python中,有兩種除法,一種除法是/,/除法計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數;還有一種除法是//,稱為地板除,兩個整數的除法仍然是整數。

python的整數沒有大小限制,python的浮點數也沒有大小限制,但是超出一定範圍就直接表示為inf(無限大)。

2.2字串和編碼

如果.py檔案本身使用utf-8編碼,並且也申明了# -- coding: utf-8 --,開啟命令提示符測試就可以正常顯示中文。

2.3使用list和tuple

list和tuple是python內建的有序集合,乙個可變,乙個不可變。根據需要來選擇使用它們。

list是pathon中的一種資料格式(有點陣列的意思)用索引來訪問list中每乙個位置的元素,記得索引是從0開始的。list可以修改,插入和刪除等。

另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改。因為tuple不可變,所以**更安全。如果可能,能用tuple代替list就盡量用tuple。

tuple的陷阱:當你定義乙個tuple時,在定義的時候,tuple的元素就必須被確定下來。若要改變tuple中的元素,可以將tuple中要變的元素設為乙個list,通過改變list造成所謂的tuple元素變化。

注意list用[ ]定義,而tuple用( ,)定義。

2.4條件判斷

if語句執行有個特點,它是從上往下判斷,如果在某個判斷上是true,把該判斷對應的語句執行後,就忽略掉剩下的elif和else。要注意邏輯順序。

2.5迴圈

python的迴圈有兩種,一種是for…in迴圈,依次把list或tuple中的每個元素迭代出來,看例子:

names = ['michael', 'bob', 'tracy']

for name in names: #注意這裡的是冒號!

print(name) #要注意這裡的四個空格縮排!

第二種迴圈是while迴圈,只要條件滿足,就不斷迴圈,條件不滿足時退出迴圈。在迴圈中,break語句可以提前退出迴圈。在迴圈過程中,也可以通過continue語句,跳過當前的這次迴圈,直接開始下一次迴圈。

2.6使用dict和set

dict

python內建了字典:dict的支援,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)儲存,具有極快的查詢速度。

為什麼dict查詢速度這麼快?因為dict的實現原理和查字典是一樣的。假設字典包含了1萬個漢字,我們要查某乙個字,乙個辦法是把字典從第一頁往後翻,直到找到我們想要的字為止,這種方法就是在list中查詢元素的方法,list越大,查詢越慢。第二種方法是先在字典的索引表裡(比如部首表)查這個字對應的頁碼,然後直接翻到該頁,找到這個字。無論找哪個字,這種查詢速度都非常快,不會隨著字典大小的增加而變慢。dict就是第二種實現方式,給定乙個名字,比如』michael』,dict在內部就可以直接計算出michael對應的存放成績的「頁碼」,也就是95這個數字存放的記憶體位址,直接取出來,所以速度非常快。

>>> d = 

>>> d['michael']

95

和list比較,dict有以下幾個特點:查詢和插入的速度極快,不會隨著key的增加而變慢;需要占用大量的記憶體,記憶體浪費多。

而list相反:查詢和插入的時間隨著元素的增加而增加;占用空間小,浪費記憶體很少。

所以,dict是用空間來換取時間的一種方法。

dict可以用在需要高速查詢的很多地方,在python**中幾乎無處不在,正確使用dict非常重要,需要牢記的第一條就是dict的key必須是不可變物件。作為key的物件就不能變。在python中,字串、整數等都是不可變的,因此,可以放心地作為key。而list是可變的,就不能作為key.

set

set和dict類似,也是一組key的集合,但不儲存value。由於key不能重複,所以,在set中,沒有重複的key。

要建立乙個set,需要提供乙個list作為輸入集合。注意,傳入的引數[1, 2, 3]是乙個list,而顯示的只是告訴你這個set內部有1,2,3這3個元素,顯示的順序也不表示set是有序的。重複元素在set中自動被過濾:

>>> s = set([1, 1, 2, 2, 3, 3])

>>> s

set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作.

set和dict的唯一區別僅在於沒有儲存對應的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變物件,因為無法判斷兩個可變物件是否相等,也就無法保證set內部「不會有重複元素」。試試把list放入set,看看是否會報錯。

不可變物件

所以,對於不變物件來說,呼叫物件自身的任意方法,也不會改變該物件自身的內容。相反,這些方法會建立新的物件並返回,這樣,就保證了不可變物件本身永遠是不可變的。

>>> a = 'abc'

>>> a.replace('a', 'a')

'abc'

>>> a

'abc'

Python 學習記錄1

怎樣得到檔案的副檔名?filepath r c test test2 hello.txt import os os.path.splitext filepath c test test2 hello txt 怎樣解析 url 如何獲取路徑?os.path.dirname www.sina.com.c...

Python學習記錄(1)

一.python變數 注意事項 在大多數情況下,如果變數出現在賦值運算子或復合賦值運算子 例如 等 的左邊則表示建立變數或修改變數的值,否則表示引用該變數的值。x 3 print x 2 9 字串和元組屬於不可變序列,這意味著不能通過下標的方式來修改其中的元素值,例如下面的 試圖修改元祖中元素的值時...

python學習記錄1

變數用於儲存資訊,可以是數字,也可以是字串。例如 massage hello world number 1 為了合理使用變數而不產生錯誤,命名變數時需注意以下幾點 a.變數只能包括數字 字母和下劃線,且不能用數字開頭。b.變數名不能包含空格,應使用下劃線來連線兩個單詞,如iron man tony ...