
Python一個月的基礎語法 基本就到這咯 接下來是數據庫了python
東西太多了 簡單的整理一下linux
大多數是關鍵字 部分單詞 沒有分類整理 按照順序整理的git
statements 語句
print 輸出
quit() 退出
exit() 退出
ctrl + d (輸入文件結束符)結束輸入並退出
int 整型數
float 浮點型數
complex 複數
bool 布爾
True 真
False 假
str 字符串
list 列表
None 空值
expression 表達式
del 刪除
help() 幫助
is 是
not is 不是
id( ) 查詢內存地址
-5~256 小整數池
refrence count 引用計數
abs 取絕對值
round vc 四捨五入
pow 冪運算
input 輸入
sep 兩值之間分隔符
end 結束(內容)
if 若是
elif 不然若是
else 不然
pass 過
not 布爾 非
and 布爾 與
or 布爾 或
man ascii 終端查詢命令
ascii 編碼表
Unicode 統一編碼表
Unicode16 16位
Unicode32 32位
len(x) 返回個數
raw 原始字符串(r"hello")
in 是否出現過
not in 沒有出現
index 索引([ ])
slice 切片([ : : ])
bin( ) 整數轉二進制
oct( ) 整數轉八進制
hex( ) 整數轉十六進制
max( ) 求最大值
min( ) 最小值
ord( ) 字符對應(轉)數字
chr( ) 數字對應(轉)字符
while 循環
for 循環(遍歷)
break 跳出循環
list 列表
tuple 元組
dict 字典
range 整數序列生成器
step 步長
continue 跳過循環
iterable 可迭代對象
sum( ) 求和
any( ) 一個爲真則爲真
all( ) 全部真爲真
s.split(sep) sep:分隔符(分隔字符串返回列表)
'#'.join( ) [1, 2, 3] 返回 「1#2#3」
copy(shallow copy) 潛拷貝
deepcopy 深拷貝
reversed 順序翻轉
sorted() 排序序列
key 鍵
value 值
set 集合
frozenset 固定集合
byte 字節(0~255)
bytes() 字節串
bytearray() 字節數組
def(function) 函數
return 返回
args 參數
args=None 缺省參數
*args 元組傳參
**kwargs 字典傳參
local variable 局部變量
global variable 全局變量
globals( ) 返回全局變量字典
locals( ) 返回局部變量字典
Local(function) L 局部(做用域)
Enclosing function locals E 外部嵌套
Global(module) G 全局(模塊)
Builtin(Python) B 內建
global 聲明全局變量
nonlocal 聲明外部嵌套
lambda 匿名函數(表達式)
eval( ) 字符串當表達式執行
exec( ) 字符串當程序執行
High Order Function 高階函數
map() (函數, iterable)
filter() (函數, iterable)
sorted() (iterable, key=函數, reverse=False)
recursion 遞歸
closure 閉包
Module 模塊
builtins 內建模塊
import Module 導入模塊
from Module import * 導入模塊內屬性
dir() 返回全部屬性列表
math 數學模塊(內建)
time 時間模塊 (內建)
random 隨機模塊
sys 系統 模塊(內建)
@ Function 裝飾器函數
pip3 installtensorflow 模塊安裝
sys.path 路徑列表
__doc__ 文檔字符串
__file__ 路徑名
__name__ 模塊自身名
__all__ 可導出屬的列表
package 包
_name 隱藏屬性name
__init__.py 聲明包文件
try-except 接受處理異常
try-finally 執行必要語句
try 異常
as 更名
except 截取異常類型
else 正常結束
finally 強制執行
raise 發送錯誤
assert 限制條件發送錯
Iterator 迭代器
iter() 可迭代對象生成迭代器
next() 迭代器內順序取值
Generator 生成器
yield 函數內表達式(生成器函數)
(x for x in range() if ) 生成器表達式
zip( ) 兩個或以上可迭代生成元組
enumerate( ) 生成帶索引對象 可定義開始下標
File 文件
open() 打開文件
File.close( ) 關閉文件
gb2312 6763漢字
gbk 國標21003漢字
gb18030 27533漢字
UTF-8 Unicode
ASCII 256字符
Ojbect-Oriented Programing 面向對象
封裝
多態
繼承
多繼承
class 類
method 實例
attribute 實例屬性(變量)
__init__() 初始化方法
__del__() 析構方法
__dict__ 自身變量的字典
__class__ 實例的類
type(obj) 返回類型
isinstance() 判斷是否爲某個類
self 類方法必有的參數(本身)
object 對象(類)
instance 實例
@classmethod 裝飾爲類的方法
@staticmethod 靜態方法(類內普通函數)
inheritance 繼承(單繼承)
multiple inheritance 多繼承
derived 派生
base class 基類
super class 超類
father class 父類
derived class 派生類
child class 子類
override 覆蓋
super() 調用父類覆蓋方法
enclosure 封裝
__name 私有屬性name
polymorphic 多態(靜態/動態)
__mro__ 類的方法查找順序列表
repr(obj) 返回表達式字符串
str(obj) 返回字符串
內建函數重寫
__repr__ 對象裝字符串(表達式字符串)
__str__ 函數重寫(字符串)
__abs__ 絕對值
__len__ 序列長度 必須返回整數
__reversed__ 排序 必須返回可迭代對象
__round__ 四捨五入 函數
數值轉換函數重寫
__complex__ 複數 函數
__int__ 整數 函數
__float__ 浮點數 函數
__bool__ 布爾 函數(特殊)
__next__ 迭代器數據庫
getattr(obj, "name"[default]) 返回name 屬性 (name爲字符串)
hasattr(obj, "name") 判斷有沒有name屬性
setattr(obj, "name", value) name賦值爲value
delattr(obj, "name") 刪除name屬性
with 異常發時自動管理 環境管理器
__enter__ with開始自動調用
__exit__ with調用 判斷是否異常
__exit__(self, exc_type, exc_val, exc_tb)
exc_type 錯誤類型
exc_val 錯誤值
exc_tb 追蹤express
運算符重載數組
方法名 運算符和表達式 說明
__add__(self, rhs) self + rhs 加法
__sub__(self, rhs) self - rhs 減法
__mul__(self, rhs) self * rhs 乘法
__truediv__(self, rhs) self / rhs 除法
__floordiv__(self, rhs) self // rhs 地板除
__mod__(self, rhs) self % rhs 取模(求餘)
__pow__(self, rhs) self ** rhs 冪緩存
rhs(right hand side) 右手邊閉包
反向算術運算符重載
方法名 運算符和表達式 說明
__radd__(self, lhs) lhs + self 加法
__rsub__(self, lhs) lhs - self 減法
__rmul__(self, lhs) lhs * self 乘法
__rtruediv__(self, lhs) lhs / self 除法
__rfloordiv__(self, lhs) lhs // self 地板除
__rmod__(self, lhs) lhs % self 取模(求餘)
__rpow__(self, lhs) lhs ** self 冪app
lhs(left hand side) 右手邊dom
複合賦值算術運算符重載
方法名 運算符和表達式 說明
__iadd__(self, lhs) lhs += self 加法
__isub__(self, lhs) lhs -= self 減法
__imul__(self, lhs) lhs *= self 乘法
__itruediv__(self, lhs) lhs /= self 除法
__ifloordiv__(self, lhs) lhs //= self 地板除
__imod__(self, lhs) lhs %= self 取模(求餘)
__ipow__(self, lhs) lhs **= self 冪
優先調用x.__iadd__(y)沒有時 (id 不變)
調用x = x.__add__(y)再不沒有
TypeError異常
複合賦值算術運算符重載
方法名 運算符和表達式 說明
__lt__(self, rhs) self < rhs 小於
__le__(self, rhs) self <= rhs 小於等於
__gt__(self, rhs) self > rhs 大於
__ge__(self, rhs) self >= rhs 大於等於
__eq__(self, rhs) self == rhs 等於
__ne__(self, rhs) self != rhs 不等於
位運算符重載
方法名 運算符和表達式 說明
__invert__(self) ~ self 取反(一元運算符)
__and__(self, rhs) self & rhs 位與
__or__(self, rhs) self | rhs 位或
__xor__(self, rhs) self ^ rhs 位異或
__lshift__(self, rhs) self << rhs 左移
__rshift__(self, rhs) self >> rhs 右移
反向位運算符重載
方法名 運算符和表達式 說明
__rand__(self, lhs) lhs & self 位與
__ror__(self, lhs) lhs | self 位或
__rxor__(self, lhs) lhs ^ self 位異或
__rlshift__(self, lhs) lhs << self 左移
__rrshift__(self, lhs) lhs >> self 右移
複合賦值位運算符重載
方法名 運算符和表達式 說明
__iand__(self, rhs) self &= rhs 位與
__ior__(self, rhs) self |= rhs 位或
__ixor__(self, rhs) self ^= rhs 位異或
__ilshift__(self, rhs) self <<= rhs 左移
__irshift__(self, rhs) self >>= rhs 右移
一元運算符重載
方法名 運算符和表達式 說明
__invert__(self) ~ self 取反(一元運算符)
__pos__(self) + self 正號
__neg__(self) - self 負號
in / not in 運算符重載
__contains__
索引和切片運算符的重載
方法名 運算符和表達式 說明
__getitem__(self, i) x = self[i] 索引/切片取值
__setitem__(self, i, val) self[i] = val 索引/切片賦值
__delitem__(self, i) del self[i] 刪除索引/切片
slice(start=None, stop=None, step=None)等同於[ : :] 切片
字符串 (str) 是不可變序列 「」
列表 [list] 是可變的序列 [ ] (索引、切片、索引切片賦值)
元組 (tuple) 是不可變的序列 ( ) (索引、切片 不可變 不能賦值)
字典 {dict} 是可變無序的容器 { } (鍵索引,鍵賦值 沒有建立 有則修改)
集合 {set} 是可變的容器 { } (元素沒法重複、索引切片)
固定集合 {frozenset} 不可變 無序 惟一元素的集合 { } (索引切片)
字節串 「bytes」 是不可變的字節序列 「 」 (索引切片)
字節數組 (bytearray) 是 可變的字節序列 () (索引 切片 賦值)
推導式:
L= [表達式 for 變量 in 可迭代對象 if 真值表達式]
D = {鍵表達式 : 值表達式 for 變量 in 可迭代對象 if 真值表達式}
S = {表達式 for 變量 in 可迭代對象 [if 真值表達式]}
匿名函數表達式:
lambda x, y: x + y
生成器表達式
(表達式 for 變量 in 可迭代對象 [if 真值表達式 ])
運算符:
+ 加
- 減
* 乘
/ 除
** 冪
// 地板除
% 取餘
is 是
is not 不是
ni 在
not in 不在
= 賦值
> 大於
>= 大於等於
< 小於
<= 小於等於
== 等於
!= 不等於
& 交集(集合)
| 並集
- 補集
^ 對稱補集
> 超集
< 子集
== 等
!= 不等
轉義符:
\' 單引號(')
\" 雙引號(")
\\ 一個反斜槓
\n 換行
\r 返回光標至行首
\t 水平製表符
\v 垂直製表符
\f 換頁
\b 倒退
\0 空字符,字符值爲零
\xXX XX爲兩位十六進制表示的字符
\uXXXX XXXX爲四個十六進制表示的Unicode16字符
\UXXXXXXXX 8個十六進制表示的Unicode32字符
格式化字符串中的佔位符和類型碼:
%s 字符串,使用str(obj)轉爲字符串
%r 字符串,使用repr(obj) 轉爲字符串
%c 整數轉爲字符串,使用chr(i) 函數
%d 十進制整數
%o 八進制整數
%x 十六進制整數(字符a-f小寫)
%X 十六進制整數(字符A-F大寫)
%e 指數型浮點數(e小寫) 如 2.9e+10
%E 指數型浮點數(E大寫) 如 2.9E+10
%f,%F 浮點十進制形式
%g,%G 進制進形式浮點或指數浮點自動轉換
%% 等同於一個%字符
佔位符和類型碼之間的格式語法:
% [- + 0 寬度.精度] 類型碼
- 左對齊(默認是右對齊)
+ 顯示正號
0 左側空白位置補零
寬度: 整個數據輸出的寬度
精度: 保留小數點後多少位,默認6位
示例:
"%10d" % 123 # ' 123'
"%+10d" % 123 # ' +123'
"%-10d" % 123 # '123 '
"%10s" % "ABC" # ' ABC'
"%05d" % 123 # '00123'
"%f" % 3.1416926535897932 # '3.141593'
"%7.2f" % 3.1416926535897932 # ' 3.14'
Python3 中經常使用字符串方法(method)
字符串的方法調用語法:
對象.方法名(方法傳參)
字符串的屬性讀用法示例:
"abc".isalpha() # 語法是對的 123.isalpha() # 語法是錯的
以下假設字符串變量名爲S
經常使用字符串方法
方法 | 說明 |
---|---|
S.isdigit() | 判斷字符串中的字符是否全爲數字 |
S.isalpha() | 判斷字符串是否全爲英文字母 |
S.islower() | 判斷字符串全部字符是否全爲小寫英文字母 |
S.isupper() | 判斷字符串全部字符是否全爲大寫英文字母 |
S.isspace() | 判斷字符串是否全爲空白字符 |
S.center(width[,fill]) | 將原字符串居中,左右默認填充空格 width:所居中字符串的長度 fill:默認填充空格 |
S.count(sub[, start[,end]]) | 獲取一個字符串中子串的個數 sub:所要獲取的字符串 start:起始位置 end:結束位置 |
S.find(sub[, start[,end]]) | 獲取字符串中子串sub的索引,失敗返回-1 start:起始位置 end:結束位置 |
S.strip() | 返回去掉左右空白字符的字符串 |
S.lstrip() | 返回去掉左側空白字符的字符串 |
S.rstrip() | 返回去掉右側空白字符的字符串 |
S.upper() | 生成將英文轉換爲大寫的字符串 |
S.lower() | 生成將英文轉換爲小寫的字符串 |
S.replace(old, new[, count]) | 將原字符串的old用new代替,生成一個新的字符串 count:更換的次數 |
S.startswith(prefix[, start[, end]]) | 返回S是不是以prefix開頭,若是以prefix開頭返回True,不然返回False, |
S.endswith(suffix[, start[, end]]) | 返回S是不是以suffix結尾,若是以suffix結尾返回True,不然返回False |
如下是不經常使用的 | |
S.title() | 生成每一個英文單詞的首字母大寫字符串 |
S.isnumeric() | 判斷字符串是否全爲數字字符 |
Python3中經常使用的列表方法(method)
- 見:help(list)
方法 | 意義 |
---|---|
L.index(v [, begin[, end]]) | 返回對應元素的索引下標, begin爲開始索引,end爲結束索引,當 value 不存在時觸發ValueError錯誤 |
L.insert(index, obj) | 將某個元素插放到列表中指定的位置 |
L.count(x) | 返回列表中元素的個數 |
L.remove(x) | 從列表中刪除第一次出如今列表中的值 |
L.copy() | 複製此列表(只複製一層,不會複製深層對象) |
L.append(x) | 向列表中追加單個元素 |
L.extend(lst) | 向列表追加另外一個列表 |
L.clear() | 清空列表,等同於 L[:] = [] |
L.sort(reverse=False) | 將列表中的元素進行排序,默認順序按值的小到大的順序排列 |
L.reverse() | 列表的反轉,用來改變原列表的前後順序 |
L.pop([index]) | 刪除索引對應的元素,若是不加索引,默認刪除最後元素,同時返回刪除元素的引用關係 |
字典的方法
函數 | 說明 |
---|---|
D表明字典對象 | |
D.clear() | 清空字典 |
D.pop(key) | 移除鍵,同時返回此鍵所對應的值 |
D.copy() | 返回字典D的副本,只複製一層(淺拷貝) |
D.update(D2) | 將字典 D2 合併到D中,若是鍵相同,則此鍵的值取D2的值做爲新值 |
D.get(key, default) | 返回鍵key所對應的值,若是沒有此鍵,則返回default |
D.keys() | 返回可迭代的 dict_keys 集合對象 |
D.values() | 返回可迭代的 dict_values 值對象 |
D.items() | 返回可迭代的 dict_items 對象 |
Python3 集合的方法
方法 | 意義 |
---|---|
S.add(e) | 在集合中添加一個新的元素e;若是元素已經存在,則不添加 |
S.remove(e) | 從集合中刪除一個元素,若是元素不存在於集合中,則會產生一個KeyError錯誤 |
S.discard(e) | 從集合S中移除一個元素e,在元素e不存在時什麼都不作; |
S.clear() | 清空集合內的全部元素 |
S.copy() | 將集合進行一次淺拷貝 |
S.pop() | 從集合S中刪除一個隨機元素;若是此集合爲空,則引起KeyError異常 |
S.update(s2) | 用 S與s2獲得的全集更新變量S |
S.difference(s2) | 用S - s2 運算,返回存在於在S中,但不在s2中的全部元素的集合 |
S.difference_update(s2) | 等同於 S = S - s2 |
S.intersection(s2) | 等同於 S & s2 |
S.intersection_update(s2) | 等同於S = S & s2 |
S.isdisjoint(s2) | 若是S與s2交集爲空返回True,非空則返回False |
S.issubset(s2) | 若是S與s2交集爲非空返回True,空則返回False |
S.issuperset(...) | 若是S爲s2的子集返回True,不然返回False |
S.symmetric_difference(s2) | 返回對稱補集,等同於 S ^ s2 |
S.symmetric_difference_update(s2) | 用 S 與 s2 的對稱補集更新 S |
S.union(s2) | 生成 S 與 s2的全集 |
Python運算符優先級
運算符 | 描述 |
---|---|
(), [], {key: value}, {} | 元組表達式、列表表達式、字典表達式、集合表達式 |
x[index], x[index:index], x(arguments...), x.attribute |
索引,切片, 函數調用,屬性引用 |
** | 指數 (最高優先級) |
~, +, - | 按位翻轉, 正號,負號 |
*, /, %, // | 乘,除,取模和地板除 |
+, - | 加法, 減法 |
>>, << | 右移, 左移運算符 |
& | 位與(AND) |
^ | 位異或(XOR) |
| | 位或(OR) |
<=, <, >, >=, ==, !=, is, is not, in, not in |
比較,身份測試,成員資格測試 |
not | 布爾非 |
and | 布爾與 |
or | 布爾或 |
if - else | 條件表達式 |
lambda | lambda表達式 |
文件
mode 模式字符的含義
字符 | 含義 |
---|---|
'r' | 以只讀方式打開(默認) |
'w' | 以只寫方式打開,刪除原有文件內容(若是文件不存在,則建立該文件並以只寫方式打開) |
'x' | 建立一個新文件, 並以寫模式打開這個文件,若是文件存在則會產生"FileExistsError"錯誤 |
'a' | 以只寫文件打開一個文件,若是有原文件則追加到文件末尾 |
'b' | 用二進制模式打開 |
't' | 文本文件模式打開 (默認) |
'+' | 爲更新內容打開一個磁盤文件 (可讀可寫) |
- 缺省模式是 'rt'
- 'w+b' 能夠實現二進制隨機讀寫,當打開文件時,文件內容將被清零
- 'r+b' 以二進制讀和更新模式打開文件,打開文件時不會清空文件內容
- 'r+' 以文本模式讀和更新模式打開文件,打開文件時不會清空文件內容
python 文件經常使用方法:
方法 | 說明 |
---|---|
F.close() | 關閉文件(關閉後文件不能再讀寫會發生ValueError錯誤) |
F.readline() | 讀取一行數據, 若是到達文件尾則返回空行 |
F.readlines(max_chars=-1) | 返回每行字符串的列表,max_chars爲最大字符(或字節)數 |
F.writelines(lines) | 將字符串的列表或字符串的列表中的內容寫入文件 |
二進制文件操做方法 | |
F.read(size=-1) | 從一個文件流中最多讀取size個字符(文本文件)或字節(二進制文件),若是不給出參數,則默認讀取文件中所有的內容並返回 |
F.write(text) | 寫一個字符串到文件流中,返回寫入的字符數(文本文件)或字節數(二進制文件) |
F.tell() | 返回當前文件流讀寫指針的絕對位置(字節爲單位) |
F.seek(offset, whence=0) | 改變數據流讀寫指針的位置,返回新的絕對位置 |
F.flush() | 把寫入文件對象的緩存內容寫入到磁盤 |
F.readable() | 判斷這個文件是否可讀,可讀返回True,不然返回False |
F.writable() | 判斷這個文件是否可寫,可寫返回True,不然返回False |
F.seekable() | 返回這個文件對象是否支持隨機定位 |
F.truncate(pos = None) | 剪掉 自pos位置以後的數據,返回新的文件長度 |
時間模塊 time
- 此模塊提供了時間相關的函數,且一直可用
時間簡介
-
公元紀年是從公元 0000年1月1日0時開始的
-
計算機元年是從1970年1月1日0時開始的,此時時間爲0,以後每過一秒時間+1
-
UTC 時間 (Coordinated Universal Time) 是從Greenwich時間開始計算的.
UTC 時間不會因時區問題而產生錯誤 -
DST 陽光節約時間(Daylight Saving Time),又稱夏令時, 是一個通過日照時間修正後的時間
時間元組
- 時間元組是一個9個整型元素組成的,這九個元素自前至後依次爲:
- 四位的年(如: 1993)
- 月 (1-12)
- 日 (1-31)
- 時 (0-23)
- 分 (0-59)
- 秒 (0-59)
- 星期幾 (0-6, 週一是 0)
- 元旦開始日 (1-366)
- 夏令時修正時間 (-1, 0 or 1).
- 注:
- 若是年份值小於100,則會自動轉換爲加上1900後的值
模塊名: time
時間模塊用法:
import time # 或 from time import xxx # 或 from time import *
變量 | 描述 |
---|---|
time.altzone | 夏令時時間與UTC時間差(秒爲單位) |
time.daylight | 夏令時校訂時間 |
time.timezone | 本地區時間與UTC時間差(秒爲單位) |
time.tzname | 時區名字的元組, 第一個名字爲未經夏令時修正的時區名, 第一個名字爲經夏令時修正後的時區名 |
注: CST爲中國標準時間(China Standard Time UTC+8:00)
函數名 | 描述 |
---|---|
time.time() | 返回從計算機元年至當前時間的秒數的浮點數(UTC時間爲準) |
time.sleep(secs) | 讓程序按給定秒數的浮點數睡眠一段時間 |
time.gmtime([secs]) | 用給定秒數轉換爲用UTC表達的時間元組 (缺省返回當前時間元組) |
time.asctime([tuple]) | 將時間元組轉換爲日期時間字符串 |
time.mktime(tuple) | 將本地日期時間元組轉換爲新紀元秒數時間(UTC爲準) |
time.localtime([secs]) | 將UTC秒數時間轉換爲日期元組(以本地時間爲準) |
數學模塊 math
- 模塊名: math
- 注:
- linux下爲內建模塊
- Mac OS下爲標準庫模塊
數學模塊用法:
import math # 或 from math import *
變量 | 描述 |
---|---|
math.e | 天然對數的底e |
math.pi | 圓周率pi |
函數名 | 描述 |
---|---|
math.ceil(x) | 對x向上取整,好比x=1.2,返回2 |
math.floor(x) | 對x向下取整,好比x=1.2,返回1 |
math.sqrt(x) | 返回x的平方根 |
math.factorial(x) | 求x的階乘 |
math.log(x[, base]) | 返回以base爲底x的對數, 若是不給出base,則以天然對數e爲底 |
math.log10(x) | 求以10爲底x的對數 |
math.pow(x, y) | 返回 x**y (x的y次方) |
math.fabs(x) | 返回浮點數x的絕對值 |
角度和弧度degrees互換 | |
math.degree(x) | 將弧度x轉換爲角度 |
math.radians(x) | 將角度x轉換爲弧度 |
三角函數 | |
math.sin(x) | 返回x的正弦(x爲弧度) |
math.cos(x) | 返回x的餘弦(x爲弧度) |
math.tan(x) | 返回x的正切(x爲弧度) |
math.asin(x) | 返回x的反正弦(返回值爲爲弧度) |
math.acos(x) | 返回x的反餘弦(返回值爲爲弧度) |
math.atan(x) | 返回x的反正切(返回值爲爲弧度) |
隨機模塊 random
說明:
random模塊是用於模擬或生成隨機輸出的模塊.
import random as R
函數名 | 描述 |
---|---|
R.random() | 返回一個[0, 1) 之間的隨機實數 |
R.uniform(a,b) | 返回[a,b) 區間內的隨機實數 |
R.randrange([start,] stop[, step]) | 返回range(start,stop,step)中的隨機數 |
R.choice(seq) | 從序列中返回隨意元素 |
R.shuffle(seq[, random]) | 隨機指定序列的順序(亂序序列) |
R.sample(seq,n) | 從序列中選擇n個隨機且不重複的元素 |
系統模塊 sys
- 運行時系統相關的信息
sys模塊的屬性
屬性 | 描述 |
---|---|
sys.path | 模塊搜索路徑 path[0] 是當前腳本程序的路徑名,不然爲 '' |
sys.modules | 已加載模塊的字典 |
sys.version | 版本信息字符串 |
sys.version_info | 版本信息的命名元組 |
sys.platform | 操做系統平臺名稱信息 |
sys.argv | 命令行參數 argv[0] 表明當前腳本程序路徑名 |
sys.copyright | 得到Python版權相關的信息 |
sys.builtin_module_names | 得到Python內建模塊的名稱(字符串元組) |
sys模塊的函數
函數名 | 描述 |
---|---|
sys.exit([arg]) | 退出程序,正常退出時sys.exit(0) |
sys.getrecursionlimit() | 獲得遞歸嵌套層次限制(棧的深度) |
sys.setrecursionlimit(n) | 獲得和修改遞歸嵌套層次限制(棧的深度) |
內建函數
數值對象的構造(建立)函數
函數 | 說明 |
---|---|
float(obj) | 用字符串或數字轉換爲浮點數, 若是不給出參數,則返回0.0 |
int(x, base=10) int(x=0) |
用數字或字符串轉換爲整數,若是不給出參數,則返回0 |
complex(r=0.0, i=0.0) | 用數字建立一個複數(實部爲r,虛部爲i) |
bool(x) | 用x建立一個布爾值(True/False) |
預置(內建)的數值型函數
函數 | 說明 |
---|---|
abs(x) | 取x的絕對值 |
round(number[, ndigits]) | 對數值進行四捨五入, ndigits是小數向右取整的位數, 負數表示向左取整 |
pow(x, y, z=None) | 至關於x ** y 或 x**y % z |
help() 查看函數幫助:
help函數 >>> help(abs) # 查看abs函數的幫助
基本輸入輸出
基本輸入 input
函數 | 說明 |
---|---|
input('提示字符串') | 返回輸入的字符串(僅Python3,'提示字符串' 能夠是空) |
基本輸出函數 print
函數 | 說明 |
---|---|
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) | 將一系列的值以字符串形式輸出到 標準輸出設備上,默認爲終端. |
參數選項
選項的關鍵字參數爲: sep: 兩個值之間的分隔符,默認爲一個空格' ' end: 輸出完畢後在流末尾自動追加一個字符串,默認爲換行符'\n' file: 流對象,默認爲sys.stdout. flush: 是否當即將流進行輸出
字符串編碼轉換函數
函數 | 說明 |
---|---|
ord(c) | 返回一個字符的Unicode值 |
chr(i) | 返回i這個值所對應的 字符 |
整數轉換爲字符串函數
函數 | 說明 |
---|---|
hex(i) | 將整數轉換爲十六進制字符串 |
oct(i) | 將整數轉換爲八進制字符串 |
bin(i) | 將整數轉換爲二進制字符串 |
字符串構造函數
"123" + 1 # 不合法
函數 | 說明 |
---|---|
str(obj='') | 將對象轉換爲字符串 |
range()函數
格式:
(見:help(range))
函數 | 意義 |
---|---|
range(stop) | 從零開始,每次生成一個整數後加1操做,直到stop爲止(不包含stop) |
range(start,stop[,step]) | 從start開始,每次生成一個整數後移動step,直到stop爲止(不包含stop,且step能夠是負整數) |
列表的構造(建立)函數list
函數 | 說明 |
---|---|
list() | # 生成一個空的列表 等同於 [] |
list(iterable) | # 用可迭代對象建立一個列表 |
Python3中經常使用的序列函數
函數 | 說明 |
---|---|
len(seq) | 返回序列的長度 |
max(x) | 返回序列的最大值的元素 |
min(x) | 返回序列的最小值的元素 |
------以上是之前學的--------- | |
sum(x) | 返回序列中全部元素的和(元素必須是數值類型) |
any(x) | 真值測試,若是列表中其中一個值爲真值則返回True |
all(x) | 真值測試,若是列表中全部值爲真值則返回True |
reversed(seq) | 返回原序列反向順序的可迭代對象 |
sorted(iterable, reverse=False) | 返回已排序對象的 |
str(obj) | 將對象obj序列化爲一個字符串 |
list(iterable) | 用可迭代對象生成一個列表 |
tuple(iterable) | 用可迭代對象生成一個元組 |
元組的構造(建立)函數tuple
函數 | 說明 |
---|---|
tuple() | 生成一個空的元組,等同於 () |
tuple(iterable) | 用可迭代對象生成一個元組 |
序列相關函數總結
函數 | 說明 |
---|---|
len(seq) | 返回序列的長度 |
max(x) | 返回序列的最大值的元素 |
min(x) | 返回序列的最小值的元素 |
sum(x) | 返回序列中全部元素的和 |
any(x) | 真值測試,若是列表中其中一個值爲真值則返回True |
all(x) | 真值測試,若是列表中全部值爲真值則返回True |
str(obj) | 將對象obj序列化爲一個字符串 |
list(iterable) | 用可迭代對象生成一個列表 |
tuple(iterable) | 用可迭代對象生成一個元組 |
reversed(seq) | 返回反向順序的可迭代對象 |
sorted(iterable, key=None, reverse=False) | 返回已排序的列表 |
dict的構造(建立)函數dict
函數 | 說明 |
---|---|
dict() | # 生成一個空的字典 等同於 {} |
dict(iterable) | 用可迭代對象初始化一個字典 |
dict(**kwargs) | 關鍵字傳參形式生成一個字典 |
集合構造(建立)函數 set
函數 | 說明 |
---|---|
set() | 建立一個空的集合對象(不能用{}來建立空集合) |
set(iterable) | 用可迭代對象建立一個新的集合對象 |
固定集合構造(建立)函數 frozenset
函數 | 說明 |
---|---|
frozenset() | 建立一個空的固定集合對象 |
frozenset(iterable) | 用可迭代對象建立一個新的固定集合對象 |
globals() / locals() 函數
函數 | 說明 |
---|---|
globals() | 返回當前全局做用域內變量的字典 |
locals() | 返回當前局部做用域內變量的字典 |
eval(), exec() 函數
函數 | 說明 |
---|---|
eval(source, globals=None, locals=None) | 把一個字符串source當成一個表達式來執行,返回表達式執行後的結果 |
exec(source, globals=None, locals=None) | 把一個字符串source當成程序來執行. |
高階函數 High Order Function
函數 | 說明 |
---|---|
map(func, *iterables) | 用函數和對可迭代對象中的每個元素做爲參數計算出新的可迭代對象, 當最短的一個可迭代對象再也不提供數據時此可迭代對象生成結束 |
filter(function, iterable) | 篩選可迭代對象iterable中的數據,返回一個可迭代器對象,此可迭代對象 將對iterable進行篩選.函數function 將對iterable中的每一個元素進行求值, 返回False則將此數據丟棄,返回True,則保留此數據 |
sorted(iterable, key=None, reverse=False) | 將原可迭代對象的數據進行排序,生成排序後的列表iterable 可迭代對象 key 函數是用來提供一個值,這個值將做爲排序的依據reverse 標誌用來設 置是否降序排序 |
dir函數
函數 | 說明 |
---|---|
dir([對象]) | 返回一個字符串列表 |
dir函數做用
- 若是沒有參數調用,則返回當前做用域內的全部變量的列表
- 若是給定一個對象做爲參數,則返回這個對象的全部變量的列表
- 對於一個模塊,返回這個模塊的所有變量
- 對於一個類對象,返回類對象的全部變量,並遞歸的基類對象的全部變量
- 對於其它對象返回全部變量、類變量和基類變量
迭代器函數iter和next
函數 | 說明 |
---|---|
iter(iterable) | 從可迭代對象中返回一個迭代器,iterable必須是能提供一個迭代器的對象 |
next(iterator) | 從迭代器iterator中獲取一下個記錄,若是沒法獲取一下條記錄,則觸發 StopIteration 異常 |
迭代工具函數
- 迭代工具函數的做用是生成一個個性化可迭代對象
函數 | 說明 |
---|---|
zip(iter1 [,iter2 [...]]) | 返回一個zip對象, 此對象用於生成一個元組,此元組的個數由最小的可迭代對象決定 |
enumerate(iterable[, start]) | 生成帶索引的枚舉對象,返回的迭代類型爲索引-值對(index-value)對,默認索引從零開始,也能夠用start指定 |
字節串的構造函數bytes
函數 | 說明 |
---|---|
bytes() | # 生成一個空的字節串 等同於 b'' |
bytes(整型可迭代對象) | # 用可迭代對象初始化一個字節串 |
bytes(整數n) | 生成n個值爲0的字節串 |
bytes(字符串, encoding='utf-8') | 用字符串的轉換編碼生成一個字節串 |
字節數組的生成函數 bytearray
函數 | 說明 |
---|---|
bytearray() | 建立空的字節數組 |
bytearray(整數) | 用可迭代對象初始化一個字節數組 |
bytearray(整型可迭代對象) | 生成n個值爲0的字節數組 |
bytearray(字符串, encoding='utf-8') | 用字符串的轉換編碼生成一個字節數組 |
文件的打開函數
字符 | 含義 |
---|---|
open(file, mode='rt') | 用於打開一個文件,返回此文件流對象. 若是打開文件失敗,則會觸發OSError 錯誤! 若是要打開的文件不存在,則會觸發FileNotFoundError 錯誤! |
用於類的函數
函數 | 說明 |
---|---|
isinstance(obj, class_or_tuple) | 返回這個對象obj 是不是 某個類的對象,或者某些類 中的一個類的對象,若是是返回True,不然返回False |
type(obj) | 返回對象的類型 |
super函數
函數 | 說明 |
---|---|
super(cls, obj) | 返回綁定超類的實例(要求obj必須爲cls類型的實例) |
super() | 返回綁定超類的實例,等同於:super(class, 實例方法的第一個參數),必須用在方法內調用 |
用於類的函數
函數 | 說明 |
---|---|
issubclass(cls, class_or_tuple) | 判斷一個類是否繼承自其它的類,若是此類cls是class 或 tuple中的一個派生子類則返回True,不然返回False |
對象的屬性管理函數
函數 | 說明 |
---|---|
getattr(obj, name[, default]) | 從一個對象獲得對象的屬性;getattr(x, 'y') 等同於x.y; 當屬性不存在時,若是給 出default參數,則返回default,若是沒有給出default 則產生一個AttributeError錯誤 |
hasattr(obj, name) | 用給定的name返回對象obj是否有此屬性,此種作法能夠避免在getattr(obj, name)時引起錯誤 |
setattr(obj, name, value) | 給對象obj的名爲name的屬性設置相應的值value, set(x, 'y', v) 等同於 x.y = v |
delattr(obj, name) | 刪除對象obj中的name屬性, delattr(x, 'y') 等同於 del x.y |
Python所有的錯誤類型
錯誤類型 | 說明 |
---|---|
如下內容必講 | |
ZeroDivisionError | 除(或取模)零 (全部數據類型) |
ValueError | 傳入無效的參數 |
AssertionError | 斷言語句失敗 |
StopIteration | 迭代器沒有更多的值 |
IndexError | 序列中沒有此索引(index) |
IndentationError | 縮進錯誤 |
OSError | 輸入/輸出操做失敗 |
ImportError | 導入模塊/對象失敗 |
NameError | 未聲明/初始化對象 (沒有屬性) |
AttributeError | 對象沒有這個屬性 |
GeneratorExit | 生成器(generator)發生異常來通知退出 |
TypeError | 對類型無效的操做 |
KeyboardInterrupt | 用戶中斷執行(一般是輸入^C) |
OverflowError | 數值運算超出最大限制 |
FloatingPointError | 浮點計算錯誤 |
BaseException | 全部異常的基類 |
SystemExit | 解釋器請求退出 |
Exception | 常規錯誤的基類 |
StandardError | 全部的內建標準異常的基類 |
ArithmeticError | 全部數值計算錯誤的基類 |
EOFError | 沒有內建輸入,到達EOF 標記 |
EnvironmentError | 操做系統錯誤的基類 |
WindowsError | 系統調用失敗 |
LookupError | 無效數據查詢的基類 |
KeyError | 映射中沒有這個鍵 |
MemoryError | 內存溢出錯誤(對於Python 解釋器不是致命的) |
UnboundLocalError | 訪問未初始化的本地變量 |
ReferenceError | 弱引用(Weak reference)試圖訪問已經垃圾回收了的對象 |
RuntimeError | 通常的運行時錯誤 |
NotImplementedError | 還沒有實現的方法 |
SyntaxError Python | 語法錯誤 |
TabError | Tab 和空格混用 |
SystemError | 通常的解釋器系統錯誤 |
UnicodeError | Unicode 相關的錯誤 |
UnicodeDecodeError | Unicode 解碼時的錯誤 |
UnicodeEncodeError | Unicode 編碼時錯誤 |
UnicodeTranslateError | Unicode 轉換時錯誤 |
如下爲警告類型 | |
Warning | 警告的基類 |
DeprecationWarning | 關於被棄用的特徵的警告 |
FutureWarning | 關於構造未來語義會有改變的警告 |
OverflowWarning | 舊的關於自動提高爲長整型(long)的警告 |
PendingDeprecationWarning | 關於特性將會被廢棄的警告 |
RuntimeWarning | 可疑的運行時行爲(runtime behavior)的警告 |
SyntaxWarning | 可疑的語法的警告 |
UserWarning | 用戶代碼生成的警告 |
詳見:help(builtins) |