符號(hào)表
可根據(jù)知識(shí)點(diǎn)前的符號(hào)按需選學(xué),并獲取知識(shí)點(diǎn)描述和學(xué)習(xí)資源。
必學(xué):核?知識(shí)點(diǎn),經(jīng)常?到。
建議學(xué):重要知識(shí)點(diǎn),專(zhuān)業(yè)??的基?。
?試重點(diǎn):經(jīng)常出現(xiàn)的?試知識(shí)點(diǎn)。
可有可?:邊緣區(qū)域,不是必須探索的地?。
知識(shí)描繪:知識(shí)點(diǎn)描述,快速理解。
學(xué)習(xí)資源:關(guān)聯(lián)的學(xué)習(xí)資源。
學(xué)習(xí)?標(biāo):階段性?標(biāo)。
學(xué)習(xí)路線(xiàn):基礎(chǔ)
資源:
?標(biāo):能?Python編寫(xiě)待辦事項(xiàng)列表應(yīng)?程序:創(chuàng)建?個(gè)簡(jiǎn)單的控制臺(tái)應(yīng)?,允許?戶(hù)添加、刪除和查看待辦事項(xiàng)。
Python 安裝
開(kāi)發(fā)?具:
VS Code
特點(diǎn):跨平臺(tái),插件豐富,內(nèi)置Git和終端,適?于多種編程語(yǔ)?。
PyCharm
特點(diǎn): 專(zhuān)為Python設(shè)計(jì),智能代碼助?,強(qiáng)?的調(diào)試?具
Sublime
特點(diǎn): 輕量級(jí),快速,?度可定制,?持多?件同時(shí)處理,代碼快速跳轉(zhuǎn)。
變量
1、定義變量
-
在Python中,變量是存儲(chǔ)數(shù)據(jù)值的容器。
-
定義變量時(shí),不需要顯式聲明數(shù)據(jù)類(lèi)型。Python是動(dòng)態(tài)類(lèi)型語(yǔ)?,會(huì)在運(yùn)?時(shí)?動(dòng)推斷數(shù)據(jù)類(lèi)型。
-
示例:x = 5 這?,x 是變量名,它被賦值為整數(shù) 5。
2、關(guān)鍵字
-
關(guān)鍵字是Python中預(yù)定義的、具有特殊意義的保留字。
-
關(guān)鍵字不能?作變量名、函數(shù)名或其他標(biāo)識(shí)符。
-
示例:if, else, for, while, class 等。
3、命名規(guī)則
-
變量名必須以字?或下劃線(xiàn)開(kāi)頭,不能以數(shù)字開(kāi)頭。
-
變量名可以包含字?、數(shù)字和下劃線(xiàn)(A-z, 0-9, 和 _ )。
-
變量名是??寫(xiě)敏感的,例如,myVar 和 myvar 是兩個(gè)不同的變量。
-
應(yīng)避免使?Python的內(nèi)置函數(shù)名和關(guān)鍵字作為變量名,以防?沖突。
4、基本數(shù)據(jù)類(lèi)型
-
數(shù)值類(lèi)型: 如 int (整數(shù)), float (浮點(diǎn)數(shù))。
-
字符串: ?于表示?本數(shù)據(jù),例如 str。
-
布爾值: 表示真或假,如 bool(True 或 False)。
-
列表, 元組, 字典: ?于存儲(chǔ)集合數(shù)據(jù)。
5、類(lèi)型轉(zhuǎn)換
-
可以使?內(nèi)置函數(shù)如 int(), float(), str() 等來(lái)轉(zhuǎn)換數(shù)據(jù)類(lèi)型。
-
示例:int("123") 會(huì)將字符串 "123" 轉(zhuǎn)換為整數(shù) 123。
-
?動(dòng)類(lèi)型轉(zhuǎn)換發(fā)?在執(zhí)?特定操作時(shí),例如,將整數(shù)與浮點(diǎn)數(shù)相加時(shí),整數(shù)會(huì)?動(dòng)轉(zhuǎn)換為浮點(diǎn)數(shù)。
運(yùn)算符和表達(dá)式
描述:Python中的運(yùn)算符和表達(dá)式是編程的基礎(chǔ)元素之?,它們?于執(zhí)?計(jì)算、值的?較和邏輯運(yùn)算。
1、算術(shù)運(yùn)算符
-
?
加法+
?:?于兩個(gè)數(shù)值的相加,如 3 + 4 結(jié)果為 7。 -
?
減法-
?:?于兩個(gè)數(shù)值的相減,如 5 - 2 結(jié)果為 3。 -
?
乘法*
?:?于兩個(gè)數(shù)值的相乘,如 3 * 4 結(jié)果為 12。 -
?
除法/
?:?于兩個(gè)數(shù)值的相除,如 8 / 2 結(jié)果為 4.0(結(jié)果總是浮點(diǎn)數(shù))。 -
?
取模%
?:返回除法的余數(shù),如 5 % 2 結(jié)果為 1。 -
?
冪**
?:?于求冪,如 2 ** 3 結(jié)果為 8。 -
?
整除//
?:返回兩數(shù)相除的整數(shù)部分,如 5 // 2 結(jié)果為 2。
2、?較運(yùn)算符
-
?
等于==
?: 判斷兩個(gè)值是否相等。 -
?
不等于!=
? : 判斷兩個(gè)值是否不等。 -
?
大于 >、小于 <
?: ?較兩個(gè)值的??。 -
?
大于等于 >=、小于等于 <=
?: ?較兩個(gè)值的??,包含等于的情況。
3、邏輯運(yùn)算符
-
?
與 and
?: 兩個(gè)條件同時(shí)為真時(shí),結(jié)果為真。 -
?
或 or
?: 兩個(gè)條件中?少有?個(gè)為真時(shí),結(jié)果為真。 -
?
非 not
? : 取反,真變假,假變真。
4、賦值運(yùn)算符
-
?
賦值 =
? : 將右側(cè)的值賦給左側(cè)的變量,如 x = 5。 -
復(fù)合賦值:如 +=, -=, *=, /=, %=, **=, //= 等,將算術(shù)操作與賦值結(jié)合,例如 x += 3 等同于 x = x + 3。
5、身份運(yùn)算符
-
?
is、is not
?: ?于判斷兩個(gè)變量是否引?同?個(gè)對(duì)象。
6、成員運(yùn)算符
-
?
in、not in
? : ?于檢查序列(如列表、字符串)中是否存在(或不存在)?個(gè)值。
流程控制
1、條件分?
-
?
if 語(yǔ)句
? : 檢查?個(gè)條件,如果條件為真,則執(zhí)?相關(guān)代碼塊。 -
?
elif 語(yǔ)句
? : 在if條件不滿(mǎn)?時(shí),檢查另?個(gè)條件。 -
?
else 語(yǔ)句
? : 當(dāng)所有if和elif條件都不滿(mǎn)?時(shí),執(zhí)?else部分的代碼。
2、循環(huán)
-
?
for 循環(huán)
? : 遍歷序列或其他可迭代對(duì)象,對(duì)每個(gè)元素執(zhí)?代碼塊。 -
?
while 循環(huán)
? : 當(dāng)給定條件為真時(shí),重復(fù)執(zhí)?代碼塊。
3、循環(huán)控制語(yǔ)句
-
?
break
?: 提前退出整個(gè)循環(huán)。 -
?
continue
? : 跳過(guò)當(dāng)前循環(huán)的剩余部分,?即開(kāi)始下?次迭代。
基本數(shù)據(jù)結(jié)構(gòu)
1、字符串 (String)
-
?于存儲(chǔ)?本。
-
由字符組成,如 "hello"。
-
不可變(immutable),意味著?旦創(chuàng)建,其內(nèi)容不能更改。
-
提供豐富的?法進(jìn)?操作,如索引、切?、連接和格式化。
2、列表 (List)
-
?于存儲(chǔ)有序的數(shù)據(jù)集合。
-
可以包含不同類(lèi)型的元素,如 [1, "hello", 3.14]。
-
可變(mutable),可以添加、刪除或更改其元素。
-
?持索引和切?操作,可以通過(guò)索引訪問(wèn)或更改元素。
3、元組 (Tuple)
-
類(lèi)似于列表,但是不可變。
-
?于存儲(chǔ)有序的數(shù)據(jù)集合,如 ("apple", "banana", "cherry")。
-
?旦創(chuàng)建,不能修改其內(nèi)容(添加、刪除或更改元素)。
-
常?于函數(shù)返回多個(gè)值或?qū)⒍鄠€(gè)值作為?個(gè)整體進(jìn)?處理。
4、集合 (Set)
-
?于存儲(chǔ)?序的、唯?的元素集。
-
元素不重復(fù),如 {1, 2, 3}。
-
可變,可以添加或刪除元素,但不能包含可變?cè)兀ㄈ缌斜恚?/span>
-
?持?jǐn)?shù)學(xué)上的集合操作,如并集、交集、差集等。
5、字典 (Dictionary)
-
存儲(chǔ)鍵值對(duì),每個(gè)鍵對(duì)應(yīng)?個(gè)值。
-
例如,{"name": "Alice", "age": 25}。
-
鍵通常是字符串或數(shù)字,值可以是任何數(shù)據(jù)類(lèi)型。
-
可變,可以添加、刪除或更改鍵值對(duì)。
-
?序,不能通過(guò)索引。
函數(shù)
定義
1、參數(shù)傳遞
-
函數(shù)可以接受參數(shù),這些參數(shù)在函數(shù)調(diào)?時(shí)被傳遞給函數(shù)。
-
參數(shù)可以是必需的,也可以是可選的(帶有默認(rèn)值)。
-
Python還?持關(guān)鍵字參數(shù)(允許你通過(guò)參數(shù)名指定參數(shù))和可變數(shù)量的參數(shù)(使?*args和**kwargs)。
2、作?域
描述: 在Python中,變量的作?域決定了在哪?可以訪問(wèn)該變量。
-
局部作?域:在函數(shù)內(nèi)定義的變量只能在該函數(shù)內(nèi)部訪問(wèn)。
-
全局作?域:在函數(shù)外定義的變量可以在整個(gè)代碼中訪問(wèn)。
-
global關(guān)鍵字?于在函數(shù)內(nèi)部訪問(wèn)全局變量。
-
nonlocal關(guān)鍵字?于在嵌套函數(shù)中訪問(wèn)外層函數(shù)的局部變量。
3、lambda 表達(dá)式
lambda表達(dá)式是?種創(chuàng)建匿名函數(shù)的?式。
4、常?內(nèi)置函數(shù)
描述: Python提供了許多內(nèi)置函數(shù),這些函數(shù)隨時(shí)可?,?需導(dǎo)?模塊。
-
print():打印輸出。
-
len():返回對(duì)象的?度或元素個(gè)數(shù)。
-
type():返回對(duì)象的類(lèi)型。
-
range():?成?個(gè)數(shù)值序列。
-
str(), int(), float(): ?于類(lèi)型轉(zhuǎn)換。
-
input(): ?于從?戶(hù)獲取輸?。
-
sum(): 計(jì)算序列中所有元素的總和。
-
max(), min(): 查找序列中的最?或最?值。
-
sorted(): 返回排序后的序列。
?向?qū)ο缶幊?(OOP)
1、類(lèi)和對(duì)象
1.1 類(lèi) (Class)
-
類(lèi)是創(chuàng)建對(duì)象的藍(lán)圖或模板。它為對(duì)象定義了特定的屬性和?法。
-
類(lèi)是?來(lái)定義數(shù)據(jù)以及數(shù)據(jù)操作的?法的。你可以將類(lèi)看作是構(gòu)建對(duì)象的模具。
1.2 對(duì)象 (Object)
-
對(duì)象是根據(jù)類(lèi)定義創(chuàng)建的實(shí)例。每個(gè)對(duì)象都有特定的屬性和?法。
-
對(duì)象是類(lèi)的實(shí)例化,具有類(lèi)定義的所有特性。每個(gè)對(duì)象都可以有不同的屬性值,使得每個(gè)對(duì)象都是獨(dú)???的。
-
對(duì)象的創(chuàng)建通常稱(chēng)為實(shí)例化,并且對(duì)象可以使?類(lèi)中定義的?法。
2、三?特性
2.1 封裝
描述: 封裝是OOP中將數(shù)據(jù)(屬性)和操作數(shù)據(jù)的代碼(?法)捆綁在?起的概念。這樣做的?的是隱藏對(duì)象的內(nèi)部狀態(tài),只通過(guò)公共接?暴露功能。
-
?
self
?: 在類(lèi)的?法中,self代表類(lèi)的實(shí)例?身。它是對(duì)當(dāng)前對(duì)象的引?。 -
屬性: 類(lèi)的變量,?于存儲(chǔ)數(shù)據(jù)。
-
?法: 類(lèi)中定義的函數(shù),?于定義對(duì)象的?為。
-
類(lèi)?法(Class Method): 使?@classmethod裝飾器定義,接受類(lèi)本身作為第?個(gè)參數(shù)(通常命名為cls)。
-
實(shí)例?法(Instance Method): 類(lèi)的普通?法,接受實(shí)例?身self作為第?個(gè)參數(shù)。
-
靜態(tài)?法(Static Method): 使?@staticmethod裝飾器定義,不接受self或cls參數(shù),類(lèi)似普通函數(shù)但屬于類(lèi)的命名空間。
-
訪問(wèn)控制: 控制外部對(duì)類(lèi)內(nèi)部屬性和?法的訪問(wèn)權(quán)限。Python通過(guò)前置下劃線(xiàn)實(shí)現(xiàn)(如單下劃線(xiàn) _ 和雙下劃線(xiàn) __)。
2.2 繼承
描述: 繼承允許?個(gè)類(lèi)(?類(lèi))繼承另?個(gè)類(lèi)(?類(lèi))的屬性和?法,從?實(shí)現(xiàn)代碼重?。
-
單繼承: ?類(lèi)只繼承?個(gè)?類(lèi)。
-
多繼承: ?類(lèi)可以繼承多個(gè)?類(lèi)。Python?持多繼承,允許定義繼承多個(gè)?類(lèi)的類(lèi)。
2.3 多態(tài)
描述: 多態(tài)是指不同類(lèi)的對(duì)象對(duì)同?消息作出響應(yīng)的能?,即相同的接?調(diào)?可以有不同的執(zhí)?結(jié)果。
-
?法重寫(xiě)(Method Overriding): ?類(lèi)可以重寫(xiě)?類(lèi)的?法,提供特定于?類(lèi)的實(shí)現(xiàn)。在調(diào)?這個(gè)?法時(shí),會(huì)使??類(lèi)的版本,?不是?類(lèi)的。
3、運(yùn)算符重載
描述: 運(yùn)算符重載允許為類(lèi)的實(shí)例?定義Python內(nèi)置操作符的?為。
-
通過(guò)定義特殊?法(magic methods),類(lèi)可以改變其實(shí)例的運(yùn)算符?為。
-
例如,通過(guò)重載__add__?法,可以定義兩個(gè)類(lèi)實(shí)例使?+運(yùn)算符時(shí)的?為。
4、裝飾器
描述: 裝飾器是?種設(shè)計(jì)模式,?于修改或增強(qiáng)函數(shù)或?法的?為,?不改變其代碼。
-
在Python中,裝飾器是?種函數(shù),它接受?個(gè)函數(shù)作為參數(shù)并返回?個(gè)新的函數(shù)。
-
裝飾器通過(guò)在函數(shù)定義之前使?@符號(hào)應(yīng)?,例如@decorator_name。
-
它們常?于?志記錄、性能測(cè)試、事務(wù)處理、權(quán)限校驗(yàn)等。
-
裝飾器可以應(yīng)?于任何可調(diào)?的對(duì)象,包括類(lèi)和類(lèi)的?法。
5、反射
描述: 反射是指程序在運(yùn)?時(shí)檢查和修改其結(jié)構(gòu)(如類(lèi)或函數(shù))的能?。
-
在Python中,可以通過(guò)內(nèi)置函數(shù)如getattr(), setattr(), hasattr(), 和delattr()實(shí)現(xiàn)反射,?于動(dòng)態(tài)地訪問(wèn)或修改對(duì)象的屬性。
-
type()和isinstance()等函數(shù)可以?于獲取對(duì)象的類(lèi)型信息。
-
反射使得程序可以更加動(dòng)態(tài),例如根據(jù)條件動(dòng)態(tài)調(diào)??法或訪問(wèn)屬性,但也可能使得代碼難以理解和維護(hù)。
模塊
描述:模塊是包含Python代碼的?件。模塊可以定義函數(shù)、類(lèi)和變量,也可以包含可執(zhí)?的代碼。模塊的使?是Python編程的基礎(chǔ)之?,它提?了代碼的可重?性和組織性。
1、導(dǎo)?模塊
描述: Python中導(dǎo)?模塊通常使?import語(yǔ)句。
1.1 基本導(dǎo)?
-
直接使?import語(yǔ)句,后?跟模塊名。
-
例如:import math。之后可以通過(guò)math.function_name的?式調(diào)?模塊內(nèi)的函數(shù)。
1.2 從模塊導(dǎo)?特定項(xiàng)
-
使?from ... import ...語(yǔ)法。
-
例如:from math import sqrt。這樣可以直接使?sqrt??需math.sqrt。
1.3 導(dǎo)?模塊并重命名
-
使?import ... as ...語(yǔ)法。
-
例如:import numpy as np。之后可以使?np來(lái)代替numpy。
1.4 導(dǎo)?模塊的所有項(xiàng)
-
使?from ... import *語(yǔ)法。
-
這會(huì)將模塊中的所有項(xiàng)導(dǎo)?當(dāng)前命名空間,但通常不推薦這樣做,因?yàn)樗赡軐?dǎo)致命名沖突。
2、常?模塊
-
?
math
? : 提供數(shù)學(xué)運(yùn)算函數(shù),如三?函數(shù)、對(duì)數(shù)函數(shù)等。 -
?
datetime
? : ?于處理?期和時(shí)間的模塊。 -
?
os
? : 提供了許多與操作系統(tǒng)交互的功能。 -
?
sys
?: ?于訪問(wèn)與Python解釋器緊密相關(guān)的變量和函數(shù)。 -
?
random
? : ?于?成隨機(jī)數(shù)。 -
?
json
? : ?于讀取和寫(xiě)?JSON格式數(shù)據(jù)。 -
?
re
? : 提供正則表達(dá)式?具。
包
描述: 包(Package)是?種組織模塊的?式,它們是包含模塊的?件夾,并提供了?種層次結(jié)構(gòu),使得模塊組織更加清晰。包的使?使得?型項(xiàng)?的代碼管理變得更加容易。
1、導(dǎo)?包
描述: 導(dǎo)?包的?法類(lèi)似于導(dǎo)?模塊,但它還涉及到包的層次結(jié)構(gòu)。
1.1 直接導(dǎo)?包下的模塊
-
使?import語(yǔ)句指定包名和模塊名。
-
示例:import package.module。
1.2 從包中導(dǎo)?特定模塊或函數(shù)
-
使?from ... import ...語(yǔ)法。
-
示例:from package import module 或 from package.module import function。
1.3 導(dǎo)??包
-
如果包中還包含?包,可以通過(guò).來(lái)導(dǎo)??包中的模塊。
-
示例:import package.subpackage.module。
2、?成包
描述: 創(chuàng)建?個(gè)包涉及到創(chuàng)建?個(gè)包含模塊和?個(gè)特殊?件init.py的?件夾。init.py可以為空,但它的存在告訴Python這個(gè)?件夾應(yīng)該被視為?個(gè)Python包。
2.1 創(chuàng)建包?錄
-
創(chuàng)建?個(gè)?件夾,?于存放相關(guān)的模塊。?件夾的名字就是包的名字。
2.2 添加模塊
-
在這個(gè)?件夾中創(chuàng)建Python?件(.py),每個(gè)?件都作為包的?個(gè)模塊。
2.3 ?添加__init__.py文件
?
-
在?件夾中創(chuàng)建?個(gè)名為_(kāi)_init__.py的?件。這個(gè)?件可以包含包的初始化代碼,或者僅僅為空。
異常處理
1、捕獲異常
在Python中,使?try和except語(yǔ)句來(lái)捕獲異常。try塊包含可能引發(fā)異常的代碼,?except塊包含在發(fā)?異常時(shí)要執(zhí)?的代碼。
2、try ... except ... else ... finally 結(jié)構(gòu)
try語(yǔ)句還可以包含else和finally塊。else塊中的代碼在try塊中的代碼沒(méi)有引發(fā)異常時(shí)執(zhí)?,?finally塊中的代碼始終會(huì)在try塊執(zhí)?后執(zhí)?,?論是否發(fā)?異常。
3、?定義異常
在Python中,你可以通過(guò)創(chuàng)建?定義異常類(lèi)來(lái)定義??的異常類(lèi)型。?定義異常類(lèi)通常繼承?內(nèi)置的Exception類(lèi)。
?件操作
1、打開(kāi)?件
要與?件進(jìn)?交互,?先需要打開(kāi)它。使?內(nèi)置的 open() 函數(shù),傳遞?件路徑和打開(kāi)模式。打開(kāi)模式包括:
-
'r':只讀模式
-
'w':寫(xiě)?模式(會(huì)覆蓋已存在的?件)
-
'a':追加模式(將內(nèi)容添加到?件末尾)
-
'x':獨(dú)占創(chuàng)建模式(如果?件已存在,則失?。?/span>
-
'b':?進(jìn)制模式
2、讀取?件內(nèi)容
通過(guò)打開(kāi)?件后,可以使? read() ?法讀取整個(gè)?件的內(nèi)容。你還可以使?readline() ?法逐?讀取,或者使? readlines() ?法將內(nèi)容按?讀取并存儲(chǔ)在列表中。
3、寫(xiě)??件內(nèi)容
使? write() ?法可以向?件寫(xiě)?內(nèi)容。如果?件不存在,使? 'w' 模式將創(chuàng)建?個(gè)新?件。你還可以使? writelines() ?法寫(xiě)?多?內(nèi)容。
4、關(guān)閉?件
在完成?件操作后,務(wù)必使? close() ?法關(guān)閉?件。這有助于釋放系統(tǒng)資源。為了確保?件在任何情況下都會(huì)被關(guān)閉,可以使? with 語(yǔ)句創(chuàng)建上下?管理器。