zishu's blog

zishu's blog

一个热爱生活的博主。https://zishu.me

我的 python 學習筆記

我學習 Python 的原因是想要寫一些腳本之類的程式,用來在瀏覽器上爬取一些自己想要的文字、圖片等資料。這些程式在 GitHub 上其實有很多,但是可惜的是我對後端的語言一竅不通,直接拿來用我也不會。

因此,我萌生了先學習 Python 基礎知識的想法。一直聽說廖雪峰的 Python 教程寫得不錯,這次趁著這個機會要好好研讀一番。雖然不指望能夠用得非常厲害,但至少希望能為自己薄弱的技術栈增添一點光彩,畢竟我曾經夢想成為一個全棧開發者。

下載安裝完 Python 環境後,就開始學習吧!

執行我的第一個 Python 程式#

print('hello,world')

資料類型#

在 Python 中,可以直接處理的資料類型有幾種,包括整數、浮點數、字串、布林值、空值和變數。

這與其他語言的差異並不大,資料類型基本上都是相似的,只有變數有自己的特性,所以我單獨拿出來記錄一下。

變數#

Python 是一門動態語言,可以在賦值時不斷改變變數的值,例如:

a = 123
print(a) # 輸出結果為 123
a = 'abc'
print(a) # 輸出結果為 abc

這是允許的,而在 Java 中則不行,因為 Java 是一門靜態語言,如果多次賦值會報錯。相對來說,動態語言更靈活,當然,各有利弊。

在賦值上有一個邏輯順序,例如定義一個 a = 'a' 的變數。在 Python 中實際上走了兩步,首先創造了一個字串 a,然後將這個字串賦值給變數 a。

這在數學上其實有些反邏輯,x = x + 2 這個計算在數學上是行不通的,但是在計算機中,先計算 x + 2,然後將其賦值給左側的 x,這是計算機的邏輯。

x = 1
x = x + 2
print(x) # 輸出結果為 3

其實很多計算機語言都是如此,例如我們所熟悉的 JavaScript 等等。

如果有多個變數相互賦值的話,則是一行一行執行。

a = 1
b = a
a = 2
print(a)
print(b)

最後的輸出結果分別為 21

Python 支持多種資料類型,在計算機內部,可以把任何資料都看作是一個「物件」,而變數就是在程式中用來指向這些資料物件的,對變數賦值就是把資料和變數關聯起來。對變數賦值 x = y 是把變數 x 指向真正的物件,該物件是變數 y 所指向的。隨後對變數 y 的賦值不影響變數 x 的指向。注意:Python 的整數沒有大小限制,而某些語言的整數根據其儲存長度是有大小限制的,例如 Java 對 32 位整數的範圍限制在 -2147483648 到 2147483647。Python 的浮點數也沒有大小限制,但是超出一定範圍就直接表示為 inf(無限大)。---《廖雪峰的官方網站》

字串和編碼#

Python 提供了兩個處理編碼的函數,ordchr

ord('舒')
# 33298
# 將字串轉換為整數表示

chr(33298)
# '舒'
# 將整數表示的內容轉換為字串

list#

list 類似於 JavaScript 中的 Array,是多個資料的列表,寫法如下:

>>> classmates = ['a', 'b', 'c']
>>> classmates
['a', 'b', 'c']

這時候我們就可以說變數 classmates 是一個 list。

有一個 len() 函數可以輸出 list 元素的個數:

>>> len(classmates)
>>> 3

同時,list 也有索引,從 0 開始,最後一個索引是 len(classmates)-1,如果想直接輸出最後一個元素,可以使用 classmates[-1]

>>> classmates[-1]
>>> 'c'

既然可以用 -1 表示最後一個元素,能不能用 -2 表示倒數第二個呢?答案是可以的。

>>> classmates[-2]
>>> 'b'

另外需要注意的是,在使用索引時不可超出範圍,否則會報錯。

>>> classmates[4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

list 是一個可變的有序列表,可以往裡面添加或者刪除元素。

  1. append 在末尾添加元素
>>> classmates.append('d')
>>> classmates
['a', 'b', 'c', 'd']
  1. insert 在指定位置添加元素

其中 1 是索引,表示在索引為 1 的位置插入元素,後面的元素自然往後順延。

>>> classmates.insert(1, 'd')
>>> classmates
['a', 'd', 'b', 'c']
  1. pop 刪除末尾的元素
>>> classmates.pop()
'c' # 輸出被刪除的元素

>>> classmates
['a', 'b']
  1. pop(i) 刪除指定位置的元素
>>> classmates.pop(1)
'b' # 輸出被刪除的元素

>>> classmates
['a', 'c']
>>> 
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。