今日內容
- 復習
內容詳細
1.Python入門
1.1 環境的搭建
mac系統上搭建python環境,
環境變數的作用:方便在命令列(終端)執行可執行程式,將可執行程式所在的目錄添加到環境變數,那么以后無需再輸入路徑,
1.2 變數命名
-
變數
name = 'alex' -
全域變數
NAME = "oldboy" -
函式
def func_list(): pass -
常量
不允許修改的值,Python中執行約定,
1.3 運算子
v = 1 or 2
v = 0 or 2
v = 1 and 2
v = 0 and 2
val = v if v else 666
val = v or 666 # 原始碼
is和==的區別?
1.4 資料型別
-
int
- 整型
- 其他進制轉換十進制 int('0b11011',base=2)
- int / long
- 除法
-
bool
- 0 None 空
-
str,字串型別,一般用于記憶體中做資料操作,
v = 'alex' # unicode編碼存盤在記憶體, -
bytes,位元組型別,一般用于資料存盤和網路傳輸,
v = 'alex'.encode('utf-8') # 將字串轉換成位元組(由unicode編碼轉換為utf-8編碼) v = 'alex'.encode('gbk') # 將字串轉換成位元組(由unicode編碼轉換為gbk編碼) -
list
-
tuple
-
dict
-
set
-
None
1.5 編碼
-
py默認解釋器編碼
- py2
- py3
-
以什么編碼存盤就要以什么編碼打開(建議Pycharm設定成UTF-8編碼),
-
常見的編碼
- ascii
- unicode
- utf-8
- gbk
- gb2312
1.6 深淺拷貝
針對可變型別,將其重新創建一份,
- 淺拷貝:第一層
- 深拷貝:所有層,
import copy
v = [11,22,33,[11,22,3]]
v1 = copy.copy(v1)
v2 = copy.deepcopy(v)
1.7 py2和py3區別
- 字串型別不同
- py3: str bytes
- py2: unicode str
- 默認解釋器編碼
- 輸入輸出
- int
- int long
- 除法
- range和xrang
- 模塊和包
- 字典
- keys
- py2:串列
- py3:迭代器,可以回圈但不可以索引
- values
- py2:串列
- py3:迭代器,可以回圈但不可以索引
- items
- py2:串列
- py3:迭代器,可以回圈但不可以索引
- keys
- map/filter
- py2:回傳串列
- py3:回傳迭代器,可以回圈但不可以索引
2.函式
2.1 內置函式
- 常用內置函式:open / id / type / len / range ...
- is 和 == 的區別? 通過id來進行檢查
2.2 自定義函式
-
函式式編程:增加代碼的可讀性和重用性,
-
函式基本格式:
def show(name,age): """ 函式是干什么的... :param name: :param age: :return: """ return None -
函式做引數
-
函式做變數
-
函式做回傳值
- 閉包
- 裝飾器
-
生成器
def func(): print(123) yield 1 yield 3 # 生成器 v = func() # 回圈v時或v.__next__() 時,def base(): yield 88 yield 99 def func(): yield 1 yield 2 yield from base() yield 3 result = func() for item in result: print(item)生成器推導式
# def func(): # result = [] # for i in range(10): # result.append(i) # return result # v1 = func() v1 = [i for i in range(10)] # 串列推導式,立即回圈創建所有元素, print(v1) # def func(): # for i in range(10): # yield i # v2 = func() v2 = (i for i in range(10)) # 生成器推導式,創建了一個生成器,內部回圈為執行, # 面試題:請比較 [i for i in range(10)] 和 (i for i in range(10)) 的區別?# 示例一 # def func(): # result = [] # for i in range(10): # result.append(i) # return result # v1 = func() # for item in v1: # print(item) # 示例二 # def func(): # for i in range(10): # def f(): # return i # yield f # # v1 = func() # for item in v1: # print(item()) # 示例三: v1 = [i for i in range(10)] # 串列推導式,立即回圈創建所有元素, v2 = (lambda :i for i in range(10)) for item in v2: print(item()) -
迭代器
3.模塊
3.1 內置模塊
- 常見內置模塊:json / datetime / time / os / sys
3.2 第三方模塊
- requests
- xlrd,xlwd
3.3 自定義模塊
- 檔案
- 檔案夾 / 包
3.4 使用模塊
-
匯入
-
import 模塊
-
from 模塊.模塊 import 模塊
-
from 模塊.模塊.模塊 import 函式
-
相對匯入【不推薦】
from . import xxx from .. import xxx
注意:檔案和檔案夾的命名不能是匯入的模塊名稱相同,否則就會直接在當前目錄中查找,
-
-
呼叫模塊內部元素
- 函式()
- 模塊.函式()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/205301.html
標籤:Python
上一篇:TIOBE 11 月編程語言:Java 首次跌出前二,Python 勢不可擋
下一篇:1-Django2.2安裝指南
