學習 Python
內容! 官網學習鏈接
{}
來區分版本為 Python3.10
python3
會直接進入到一個 python 解釋器中,python 解釋器可以用來直接執行一個 python 文件(python 可以像其它語言一樣,放到一個文件裡來寫),類似於寫 shell
腳本。python3 文件名.py
./文件名.py
,文件需要有可執行權限,如果沒有執行:chmod +x 文件名.py
#
, 注釋語句在單獨一行,或者是一個語句後面兩個空格tab
鍵)exit()
或者快捷鍵 ctrl+d
數字
/
:默認是浮點數除法,//
:整除,是向下取整(-1 // 3 (是負三分之一),向下取整結果為 -1)。C++ 的整除是向零取整(-1 / 3 是負三分之一,向零取整為零)**
:乘方運算n = 20
,注意變量未賦值的話不能直接用a, b = b, a
_
表示上一個表達式的值字符串
字符串:python
裡的字符串和 C++
中一樣的,區別在於 python
中單引號和雙引號都可以表示字符串,沒有區別。python
中的字符串是不能修改的
下標:
-
表示從右往左數,從右往左數的時候下標從 1
開始。不加 -
,表示從左往右數,下標從 0
開始切片
word[0:2]
0
,省略後面的時候,後面默認是字符串長度。word[:2] word[4:]
word[-2:] word[-5,4]
word[:2] + word[2:]
len
:可以求所有類型的長度
類比 C++ 中的數組。用中括號([]
)表示,裡面每一項元素用逗號(,
)隔開,數組裡每一項元素類型可以不一樣
a = [1, 4, 9]
b = [1, 2.0, 'yjx', [2,3]]
x, y, z = a
可以通過下標來訪問元素,支持切片操作。元素支持修改,與字符串不同。x[0] = 4
,x[1:3] = ['a', 'b']
淺拷貝
支持相加操作,效果是將兩個數組拼接到一起
添加元素:a.append(6)
或者 a += [7]
,在列表末尾添加元素
len(a)
:求列表 a
的長度,sroted(a)
:對列表進行排序
x[:] = []
,[]:空。清空一個數組
二維數組:列表是支持嵌套的,就是一個二維數組,x = [[1,2], [3,4]]
a, b = 0, 1
python支持復合賦值方式:第一項賦值給第一個變量,第二項賦值給第二個變量,以此類推…
>>> x = int(input("Please enter an integer: ")) # 讀入一個整數,通過 int 函數將字符串轉化成整數
Please enter an integer: 42
>>> if x < 0:
... x = 0
... print('Negative changed to zero')
... elif x == 0:
... print('Zero')
... elif x == 1:
... print('Single')
... else:
... print('More')
...
python 中的 for 循環:有一堆東西,通過 for 循環進行一個一個枚舉,不支持算術運算符,不能直接實現像 C++ 中的 for (Int i = 0; i < 10; i ++)
這種操作
循環遍歷一個列表
words = ['cat', 'window', 'defenestrate']
for w in words:
print(w, len(w))
循環遍歷一個字典
用 range 來實現一個通常的 for 循環range()
:會返回一個左閉右開的區間
for i in range(0, 10)
print(i)
range
可以實現倒序:range(9, -1, -1)
,第三個參數為公差
只有一個參數時:range(10)
:默認是等價於 range(0, 10)
f = g
,其中 g
和 f
都是函數*
,將列表中的元素展開成幾個用逗號隔開的變量,賦值給函數的參數,當作函數的參數來調用。解包一個列表是用 *
,解包一個字典是用 **
列表
b = [i *i for i in range(10)] # b裡面的每個元素是 i*i,i 是枚舉[0,9]
元組
a(1, 2, 3)
,注意是用小括號,列表是用中括號。和列表操作類似,唯一區別為列表裡的元素是可以修改的,元組裡的元素是不可以進行修改的b = (1, 2, 3)
,括號可以省略:b = 1, 2, 3
。也可以將一個元組反過來賦給若干個變量:x, y, z = b
,其中 x = 1 y = 2 z = 3
(解包操作)y, x = x, y
集合(set)
類比於 C++ 的 set
a = se()
, a = {1, 2, 3}
,{}
既可以表示集合也可以表示字典,區分主要看其裡面存的是 key-value 對還是單獨的值,如果是 key-val 對那麼就是字典,如果是單獨的值那麼就是 集合a.add(1)
。相同元素只保留一個,如果新插入的元素在集合中出現過,那麼新元素不會插入到集合中a = {
1,2,2,3,5}
set(a) # 結果為去重後的集合
a = list(set(a)) # 去重後的結果還是列表類型
字典(dict)
tel = {'jack':4096,'sape':4139}
tel['jack'] = 8888
為什麼需要模塊?答:一個龐大項目如果將所有的內容寫到一個文件裡那麼是很難調試的,需要將一個龐大的項目拆分成若干個模塊。在項目開發中采用樹型結構,每一個文件夾代表一個模塊。
引入一個自己定義的模塊,在其它文件中引用from 文件路徑(.隔開的) import 文件/函數/類
,引入多個時,每一個用 ,
隔開
引入一個函數時並重命名
from 文件路徑 import 函數1 as 別名,函數2 as 別名
python 中已經實現好了大量模塊,安裝後直接 import 進來即可
print
格式化字符串,% ()
:傳入對應的參數,就可以像 C++ 一樣格式化輸出了fin.read()
讀取文件所有內容
fin.readlines()
讀取所有行,會返回一個列表
逐行讀入
作用:當打開一個網站出現 502
錯誤時,502
錯誤就是程序發生了異常,會將異常捕獲,用戶就不會看到 502
了會跳到一個 404
頁面
def divide(x, y):
try: # 嘗試執行這一個代碼塊的內容
res = x/y
except Exception as e: # 如果出現異常,執行下面的內容
print(str(e)) ## 直接輸出異常,程序不報錯,程序仍然正常執行,如果不采用異常處理,操作之後後面的程序就不會執行了
else: # 如果沒有發生異常,不會執行異常處理的內容,會執行 else 裡的內容
print("result is", res)
finally: # 無論是否發生異常都會執行下面的內容,一般用來關閉數據庫
print("executing finally clause")
__self__init(self):
固有函數,類似於 C++ 中構造函數,注意 self 一定要寫,構造函數中也可以傳入參數。python 中的成員變量是寫在函數內的,C++ 中的成員變量是寫在函數外的。python 類和函數的用法一樣a = Car()
:實例化一個對象,update
:成員函數,a
:成員變量
2. 繼承(用括號)