python 基礎 X-mind 思維導圖
點此下載

1. python 特征
- 面向程序語言
- 面向物件語言(封裝、繼承、多型)
2. 語法規則
- 命名規則
- 字符編碼
- 基本語法
3. 運算子
- 數字運算子
- 比較運算子
- 邏輯運算子
- 賦值運算子
- 位運算子
- 成員運算子(in 、not in)
- 身份運算子(is、is not)
4. 資料型別
- 數值型 Number
- 字串 String
- 串列 List
- 元組 Tuple
- 集合 Set
- 字典 Dict
5. 變數
- 普通變數 variable
- 全域變數 global variable
- 受保護變數 protected variable
- 私有變數 private variable
6. 陳述句
- if 判斷陳述句
- for 回圈陳述句
- while 回圈陳述句
- continue 陳述句
- break 陳述句
- pass 陳述句
7. 方法
- 定義方法
- 引數型別(無引數、固定引數、可選引數、可變引數)
- 回傳值
- 呼叫方法(內部呼叫、外部呼叫)
8. 類
- 定義
- 創建類
- 屬性
- 方法(普通方法、受保護方法、私有方法)
- 建構式 init
- 物件 object
- 繼承
- 常用包(time、calendar、random)
9. 檔案
- 9.1 檔案 IO
- 9.2 資料庫 IO
10. 例外處理
- Except 作用和用法
1. python 特征
- 面向程序語言:C語言
特點:撰寫簡單,是面向物件的基礎,但重復定義,且難以維護 - 面向物件語言:C++、java、python、php、ruby
特點:容易閱讀,易復用、易擴展、易維護,但性能低
特征:封裝、繼承、多型 - 封裝:將事物抽象為類,隱藏內部屬性和方法,對外只暴露介面,實作代碼模塊化
- 繼承:子類可以直接使用父類的屬性和方法,而無需再次撰寫,實作代碼重用
- 多型:子類以其他方式(覆寫、多載)實作父類方法,可實作介面重用
2. 語法規則
- python 檔案后綴: *.py
- python 命名規則
1、python 檔案:小寫字母、_下劃線
2、變數命名:由數字、字符、_下劃線組成,數字不能開頭,下劃線開頭有特殊意義,避開關鍵字
3、函式命名:由數字、字符、_下劃線組成,數字不能開頭,下劃線開頭有特殊意義,避開關鍵字
4、類命名:首字母大寫,由數字、字符、_下劃線組成,數字不能開頭,下劃線開頭有特殊意義,避開關鍵字
- linux py檔案開頭
#!/etc/bin/python
#!/usr/bin/env python
- 字符編碼
# coding=utf-8
# -*- coding: utf-8 -*-
- 基礎語法
1、區分大小寫
2、區分代碼塊縮進
3、單行注釋 #
4、多行注釋 ''' '''、""" """
5、定義變數不需要宣告型別
6、字串需加引號:''、""、''' '''、""" """
7、三單引號和三雙引號無需加換行符 \n 和轉義符 \
8、一條陳述句默認一行,多行陳述句在一行可用分號 ; 隔開
9、print() 默認一行,多個 print() 在一行可用 end='' 連接,默認 end='\n'
10、續行符:\ ,換行符:\n
11、null 與雙單引號 '' 的區別:雙單引號 '' 占空間,null 不占空間
12、轉義字符:\ +字符,轉為普通字符
3. 運算子
- 數字運算子:+、-、*、/、%(模)、
**(冪:a**b)、// (整除,取最小值) - 比較運算子:>、<、>=、<=、!=、==
- 邏輯運算子:and、or、not
- 賦值運算子:=、+=、-=、*=、/=、%=、
**=、//= - 位運算子:&、|、^、~、<<、>>
- 成員運算子:in、not in
- 身份運算子:is、is not,是否參考同一個物件,或者是否同一種資料型別
- 優先級由高到低:數字運算子、位運算子 > 比較運算子(比較大于大于) > 賦值運算子 > 身份運算子 > 成員運算子 > 邏輯運算子
4. 資料型別
python 資料型別:數值型、字串、串列、元組、集合、字典
- 數值型 Number
數值型:整型 int 、浮點型 float
- 字串 String
字符長度:len(s)
某個字符:s[索引]
某段字符:s[索引1:索引2:步長]
正序:[::1],步長位正數
倒序:[::-1],步長位負數
方向:索引方向需與步長一致,否則結果為空
取值范圍:[索引1,索引2),包含索引1,不包含索引2
字串拼接
s * n:重復拼接 s 字串 n 次
s1 + s2:+ 將字串 s1 和 s2 拼接
字串大小
不同型別不能比較大小
s1 > s2:按位比較大小(ASII)
字串內容為純數字,才能轉型位數值型
- 串列 List
串列 List 的特點:有序可編輯,元素可重復
串列:ls=[]
串列元素:ls[索引]
元素個數:len(ls)
最大值:max(ls)
最小值:min(ls)
追加 append:ls.append(元素)
插入 insert:ls.insert(索引 , 元素)
移除 remove:ls.remove(元素),重復元素默認移除第一個
移除 del + ls[索引]
移除單個:del ls[索引]
移除多個:del ls[索引1:索引2:步長]
位置反轉 reverse
ls.reverse():倒序,與 ls[::-1] 結果一致
排序 sort
升序:ls.sort(),或 ls.sort(reverse=False)
降序:ls.sort(reverse=True)
- 元組 Tuple
元組 Tuple 的特點:有序不可編輯,元素可重復
元組:t=()
元組元素:t[索引]
元素個數:len(t)
最大值:max(t)
最小值:min(t)
- 集合 Set
集合 Set 的特點:無序可編輯,元素不重復
集合:s={}
元素元素:s[索引]
元素個數:len(s)
最大值:max(s)
最小值:min(s)
新增 add:s.add(元素)
移除 remove:s.remove(元素)
- 字典 Dict
字典 Dict 的特點:
1、無序可編輯,key 不重復
2、key 不能為 list 和 set,可為 tuple
3、key 和 value 都不能為 null
字典:d={key:value}
字典元素:d[key]
元素個數:len(d)
新增或修改:d[key]=value,不存在則新增,存在則修改
洗掉 del:del d[key]
查看 keys:d.keys(),相當于 list(d)
查看 values:d.values()
- 型別轉換
int()、float()、str()、list()、tuple()、set()
- 輸出資料型別
print(輸出資料)
%d:整型
%f:浮點數(默認6位,缺補0)
%s:字串
%0.2f、%.2f:小數點后保留兩位
a=1.23456789
print('這是浮點數:%0.2f' % a)
# 結果為:這是浮點數:1.23
5. 變數
- 變數型別
變數型別:普通變數、全域變數、受保護變數、私有變數
1、普通變數 variable
2、全域變數 global variable
3、受保護變數 protected variable
單下劃線:_variable,外部不能呼叫,內部呼叫 self._variable
雙下劃線(多下劃線):__variable,跨檔案匯入 * 時,呼叫會出錯
4、私有變數 private variable
查看變數型別:type(變數)
<class '型別'>:int、float、str、list、tuple、set、dict
判斷資料型別是否相等:
type(變數) is 型別
type(變數) == 型別
判斷變數內容是否相等:== 或 !=
回傳變數存盤變數:id(變數)
- 變數賦值
1、單個賦值:
v = value
2、多個賦值:
v1,v2 = value1,value2
v1 = v2 =value
3、交換賦值:
v1,v2 = v2,v1
或 v1 = temp, v1 = v2, v2 = temp
6. 陳述句
1、if 判斷陳述句
格式:if 條件陳述句: 符合條件 - elif 條件陳述句: 符合條件 - else: 不符合條件
2、for 回圈陳述句
格式:for 條件陳述句: 符合條件 - else: 不符合條件
(1)for i in range(取值范圍)
取值范圍:[取值范圍)
(2)for i in 多元素資料
取值范圍:所有元素
for i in 多元素資料[索引1:索引2:步長]
(3)for i in range(0,len(多元素資料))
取值范圍: [0,len(多元素資料))
3、while 回圈陳述句
格式:while 條件陳述句: 符合條件 - else: 不符合條件
while True:死回圈
4、continue 陳述句:跳過后面代碼,進入下一次回圈
5、break 陳述句:跳出回圈
continue 與 break :用于 for 和 while 回圈
6、pass 陳述句:占位、提示
作用:一般用于占位,保證程式結構的完整性
撰寫程式時,部分代碼尚未完成,用 pass 作為標記來提示以后完成
7. 方法
1、定義方法
def function(引數):
方法被呼叫才執行,重名呼叫最后一個
2、引數型別
- 無引數
def function():
- 固定引數
單個引數:def function(a):
多個引數:def function(a,b,c):
固定+可選、固定+可變,固定引數必須在前面
- 可選引數
def function(a=123):
不傳參使用默認值,傳參使用傳來的值
- 可變引數
def function(*a):
型別為元組 tuple,不傳參為空元組,可傳單個或多個引數
3、回傳值
方法沒寫 return,默認為 return None
return 代表結束,return 后面陳述句不執行
4、呼叫方法
- 本檔案呼叫方法(內部呼叫)
function()
- 跨檔案呼叫方法(外部呼叫)
(1)匯入檔案函式
import 完整路徑.檔案名
from 完整路徑.檔案名 import functions
from 完整路徑.檔案名 import * :匯入該檔案的所有方法
(2)呼叫方法 function()
完整路徑.檔案名.function()
(3)不執行引入的可執行代碼
被引入檔案的可執行代碼都會執行
若不想被執行,在代碼前添加,注意雙下劃線、雙等號:
if __name__=='__main__':
8. 類
1、定義:對同一類事物的共同屬性和功能的概括
2、創建類:class cl:
3、屬性
類變數:所有物件都有的屬性
實體變數:物件特有的屬性
4、方法:第一個默認引數為 self,不能傳值
方法型別:
(1)普通方法:def function():
(2)受保護方法 protected:
單下劃線:def _function()
外部不能呼叫,內部呼叫 self.__function()
(3)私有方法 private:
雙下劃線、多下劃線:def __function()
跨檔案匯入 * 時,呼叫會出錯
5、建構式 init
def __init__(self):
呼叫類就是在呼叫建構式
不能寫 return ,默認回傳物件
沒有定義建構式,系統會默認構建
沒有定義的屬性或方法,呼叫時會報錯
6、物件 object
創建物件:oj=cl()
呼叫方法:oj.function()
7、繼承
(1)定義
子類繼承父類的屬性和方法:class son(dad):,class son(dad1,dad2,...):
子類可繼承多個父類,繼承最多三層(爺父子)
不能互為父子,不能邏輯關系混亂
(2)構造方法
如果沒有構造方法,系統默認創建
繼承順序:子類 > 父類1(或父類1的父類) > 父類2(或父類1的父類)...
(3)同名屬性、方法
如果子類和父類都沒有同名屬性或方法,則報錯
繼承順序:子類 > 父類1(或父類1的父類) > 父類2(或父類1的父類)...
(4)覆寫 override 、重寫 overwrite
子類與父類的方法名相同,引數型別和個數都相同
(5)多載 overloading
子類與父類的方法名相同,引數型別或個數不同
(6)通過物件呼叫父類屬性和方法
super(子類,物件).父類的屬性或方法
(7)判斷類 a 是否為類 b 的子類
issubclass(a,b)
(8)判斷物件 oj 是否為類 cl 物件
insinstance(oj,cl)
8、常用包
(1)import time;
time.sleep(3) # 休眠3秒
time.strftime('%Y-%m-%d %H-%M-%S',time.localtime()) # 格式化本地時間
(2)import calendar;
calendar.calendar(2021) # 顯示2021年的日歷
calendar.month(2021,3) # 顯示2021年3月的日歷
calendar.isleap(2021) # 判斷閏年
(3)import random;
random.randint(1,9) # 取1~9的亂數
9. 檔案
9.1 檔案 IO
1、打開檔案
file=open('路徑/檔案名','打開方式')
2、打開方式
w:寫
a:追加
r:只讀
+:可讀寫
W+:不存在檔案則新建,存在則覆寫所有內容,焦點在第一位
a+:不存在檔案則新建,存在則追加內容,焦點在最后
如果想讀所有資料,先要把焦點定在首位:file.seek(0)
r+:不存在檔案則報錯,存在則從左到右覆寫內容,焦點在第一位
3、讀取內容
(1)file.read()
型別為 str
file.read() 讀所有的資料
file.read(5):從當前焦點讀5個字符
(2)file.readline()
型別為 str
從當前焦點讀一行資料
(3)file.readlines()
型別為 list
從當前焦點讀所有資料
4、回傳當前焦點位置
file.tell() # 回傳數值
5、跳轉到某焦點位置
file.seek(a) # a 為數值
6、關閉檔案
file.close()
7、舉栗子:
# file=open('a.txt','w+')
# file.write('1234')
# file.close()
# file=open('b.txt','a+')
# file.write('abcd')
# file.seek(0)
# print(file.read())
# file.close()
file=open('b.txt','r+') # 打開檔案
file.write('qq\'qq') # \ 轉義符,將特殊字符 ' 轉義為普通字符
a=file.read(3) # read(),readline(),readlines()
print(a,type(a)) # type: str,list
b=file.tell() # 回傳當前焦點位置,為數值
file.seek(b) # 跳轉到某焦點位置
file.close() # 關閉檔案
9.2 資料庫 IO
1、匯入 pymysql
import pymysql
2、連接資料庫
conn=pymysql.connect(host,user,password,db)
3、創建游標
cursor=conn.cursor()
4、執行sql陳述句
cursor.execute(sql)
5、獲取單個、多個、所有資料,型別為元組 tuple
cursor.fetchone()
獲取第一條資料,無資料回傳 None
cursor.fetchmany(n)
獲取前 n 條資料,回傳一維元組,無資料回傳 ()
cursor.fetchall()
獲取所有資料,回傳二維元組,無資料回傳 ()
6、修改資料需提交
除了查詢外,insert、update、delete 等修改資料后,則需要提交,才能成功保存到資料庫
conn.commit()
7、關閉游標
cursor.close()
8、關閉資料庫連接
conn.close()
9、舉栗子:
# 匯入 pymysql
import pymysql
# 連接資料庫
conn=pymysql.connect(host='localhost',user='root',passwd='',db='school_50',port=3306,charset='utf8')
# 創建游標
cursor=conn.cursor()
# 執行陳述句
cursor.execute('select * from student;')
# sql= 'insert into student values("%s","%s","%s","%s")' % ('09','澳洲','1994-02-28','女')
# num = cursor.execute(sql) # 執行結果統計數量
# 獲取資料,fetchone,fetchmany,fetchall()
list=cursor.fetchmany()
print(type(list),list)
# for i in list:
# print(i)
# 提交修改
conn.commit()
# 關閉游標
cursor.close()
# 關閉資料庫
conn.close()
10. 例外處理
- Except 作用和用法
Except 作用:處理例外
Except用法:
try:
# 執行陳述句
# 捕獲例外進入 except 塊
# 若無例外進入 else 塊
except error as e:
# 處理例外
# 一個 except 塊可有多個例外
# try 塊只有一個,except 塊可有多個
else:
# 執行陳述句
finally:
# 執行陳述句,最后都會被執行
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/279805.html
標籤:python
上一篇:前端如何關閉已經發送的請求
