學習 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. 繼承(用括號)