
Python一個月的基礎語法 基本就到這咯 接下來是數據庫了
東西太多了 簡單的整理一下
大多數是關鍵字 部分單詞 沒有分類整理 按照順序整理的
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 追蹤
運算符重載
方法名 運算符和表達式 說明
__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 冪
lhs(left hand side) 右手邊
復合賦值算術運算符重載
方法名 運算符和表達式 說明
__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) |