文章目錄
python基礎語法
數據類型
數值
- int類型
- float類型
- bool類型
- 運算符
- 算數運算符:+,-,*,/,%,//,** …
- 比較運算符:>,<,==,!= …
- 賦值運算符:=,+=,-=,*=,/= …
- 邏輯運算符:and or not …
- 身份運算符:is is not …
- 成員運算符:in not in …
字符串
- 字符串的定義:使用單引號,雙引號或三引號包起來
- 字符串拼接:使用 + 號或者是 join 進行拼接
- 字符串格式化輸出:
- format:
- 字符串轉義:\ 或 r
- 字符常用方法:
- 字符串下標取值和切片:與列表等有序數組操作相同
列表
- 列表定義:用中括號來表示,其中的內容能夠爲任意類型
- 列表的增刪改查:
- 添加元素:append(向尾部添加一個)、extend(向尾部添加一個元組中的多個元素)、insert(向指定位置添加一個元素)
- 刪除元素:remove(刪除列表中第一次出現的value)、pop(刪除指定下標的元素)、clear(清空列表中的元素)
- 修改元素:直接通過下標賦值
- 查找元素:通過下標取值、index(返回這個值的第一個下標)、count(返回這個值的個數)
- 列表的其他方法:sort(對列表進行排序,用得較少),reverse(列表倒序),copy(將該列表複製一個副本)
元組
- 元組的定義:使用()將元素括起來
- 元組查找元素的方法:count、find
- 元組下標取值和切片操作
字典
- 字典的定義:``{‘name’:‘kaishui’,‘gender’:‘female’}`
- 字典的增刪改查:
- 添加元素:直接通過鍵進行賦值
- 刪除元素:pop
- 修改元素:通過鍵賦值
- 字典查詢元素:get、通過key查找。區別:get不會報錯
- 字典的其他方法:keys、values、items
集合
特點:無序,去重,元素必須是不可變類型的數據
數組類型的總結
-
數據類型分類:
- 數值: int、float、bool
- 序列:str、list、tuple(內部元素有序,支持下標取值和切片)
- 散列:set、dict(內部元素無序)
-
可變和不可變
- 可變:list,dict、set
- 不可變:數值、字符串、元組
控制流程
條件判斷
- if
- if else
- if elif else
while循環
while 循環條件:
條件成立執行的循環體
- break :直接跳出循環
- continue:跳過這次循環,進入下次循環
for循環
-
for else 語句:
-
for 變量 in 被遍歷的數據: 循環體 else: # for循環遍歷完所有的數據之後,執行else中的語句。 # 如果中途break了,則不會執行else中的語句
函數
函數的定義和調用
-
定義語法格式
-
def 函數名(): 函數體
-
調用:函數名()
函數的返回值
return
函數的參數
-
形參
- 必備參數
- 默認參數
- 不定長參數
- *args(傳入元組),**kwargs(傳入字典)
-
實參
- 傳參的三種形式:
- 位置參數
- 關鍵字參數
- 序列傳參
- 傳參的三種形式:
函數的作用域
- 全局變量
- 局部變量
- global
內置函數
- print(),input(),len(),range(),id(),type()
- enumerate(獲取序列下標和每個下標對應的元素)
- eval
- filter,過濾,與匿名函數搭配使用
- zip
文件、路徑、異常
文件的操作
文件打開和關閉
- open
- close
文件內容讀取
- read(讀取所有存放在字符串中)
- readline(讀取一行)
- readlines(讀取所有行的內容放在列表中)
文件內容寫入
- write(寫入一行)
- writelines(寫入多行)
文件打開的模式
- r :讀取模式
- a:追加寫入模式
- w:覆蓋寫入模式
- 對於圖片的操作模式:rb,wb,ab
with操作文件
打開文件流進行相關操作後,不用使用close函數就能直接關閉該文件
模塊導入
import 模塊
from 模塊 import 變量,函數
from 包名 import 模塊
from 包名.模塊 import 變量,函數
from 模塊 import 變量 as 別名
路徑處理
- os 模塊來處理路徑
- os.path.abspath(path) : 返回絕對路徑
- os.path.dirname(path) :返回文件路徑
- os.path.join(path1[,path2[,path3…]]):把目錄和文件名合成一個路徑
- os.path.isdir(path), os.path.isfile(path):判斷路徑是否爲文件夾/文件
異常處理
-
異常分析
-
異常捕獲
-
try: # 可能出現異常代碼 except Exception as e: # 處理異常代碼 else: # 代碼沒有出現異常 finally: # 無論有沒有出現異常都會執行
-
斷言和拋出異常
- assert:斷言
- raise:主動拋出異常
面向對象
類和對象的概念
類是一類事物的抽象概念 ,描述了這一類事物的共同特徵和行爲。
實例對象是這一類事物的具體個體。
類的定義和對象的創建
類的定義:class Cat
實例對象:kitty = Cat()
類屬性和實例屬性
類屬性:直接定義在這個類中的變量,能夠使用類和變量直接調用
實例屬性:對象所具有的獨有屬性,只能夠使用實例對象進行調用。
_ _ init_ _方法
初始化方法,在類被調用時會自動執行該方法
class Student:
def __init__(self,name,age):
self.name = name
self.age = age
xiaoming = Student('xiaoming','19')
self的理解
self作爲實例方法的參數,代表的是調用這個方法的對象。
類方法、靜態方法和實例方法
類方法:使用@classmethod修飾,第一個參數爲cls。方法內部只用到類屬性,類和對象都能夠直接調用該方法
靜態方法:使用@staticmethod修飾,其中既沒有類屬性也沒有實例屬性。
實例方法:第一個參數爲self,只能夠使用實例對象來調用該方法
類的繼承
-
繼承一個父類
-
class Car(Bicycle): pass
-
object:python中所有類的頂級父類
-
繼承多個父類
-
class Car(父類1,父類2): pass
-
子類用過繼承能夠獲得父類中所有的方法和屬性,私有屬性不能夠繼承。
-
私有屬性:使用__開頭的變量。
重寫父類方法和調用
- 重寫父類方法:
- 調用被重寫的父類方法:
- 父類名.方法(self)
- super().方法()
動態設置屬性:
- setattr(類名,屬性名,屬性值):動態設置類中對應的屬性爲傳入的屬性值,用於不確定屬性名的場景
- getattr(類名,屬性名,默認值):如果在類中未找到該屬性,則返回默認值。
- 一般用於不確定屬性名的場景,例如屬性名爲列表中的值。
- delattr(類名,屬性名):刪除類中對應的屬性,和del相似,但可用於不確定屬性名的刪除。
- hasattr(類名、屬性名)