1. 程式人生 > >python基礎知識總結(不斷更新。。。。)

python基礎知識總結(不斷更新。。。。)

python

可以簡便的方法:
(1)lambda x,y:x*y
(2)list1 = list(filter(lambda x:x%3 == 0,range(100)))
filter 第一個參數是過濾條件,第二個是要過濾的內容
返回值是個Object,得轉換為其他類型
(3)map: list1 = map(lambda x:x**2,[1,2,3,4,5])
第一個是處理條件,第二個是序列
返回值是Object
(4)[i for i in range(10) if i%2 ==0] 直接生成列表

1.縮進是python的靈魂
2.獲取變量類型,type(),isinstance(,)
3.s為字符串

4.怎麽才能讓int四舍五入?

int(x+0.5)
5.python3支持中文變量名,但源碼是utf-8
6.python對象3個特性:身份,類型,值
7.python數字類型:int,long,float,boolean,complex(復數),序列類型:字典,元組,列表
8.典型python文件結構:
(1)起始行 #/usr/bin/env/python
(2) 模塊文檔 "this is a test module"
(3) 模塊導入 import os
(4) (全局)變量定義 debug = True
(5) 類定義(若有) class FooClass(Object):
pass
(6) 函數定義: def test():
(7) 主程序 if name = "main"
9.元組不可變,列表可變,字典可變
10.set函數,去除集合中重復元素,li = set(list2)
11.兩個集合求交集:list1 & list2,求並集:list1 | list2

  1. parent
    --_init.py
    --child
    -- _init.py
    --a.py
    目錄結構如上,如果要引用a文件,可這樣
    import sys,os
    sys.path.append(os.getcwd()+"\parent\child")
    from a import func
    13.os.walk(path)
    14.p,f = os.path.split(spath) 分隔目錄和文件名
    drv,left = os.path.splitdrive(spath) 分隔盤符和文件名
    f,ext = os.path.splitext(spath) 分隔文件和擴展名
    15.時間處理
    16.三目運算符:sm = x if x>y else y
    17.None表示空類型
    18.a=[1,2,3] b=[1,2,4] id(a[1]) == id(b[1]) True
    19.python是基於值的內存管理方式,不同變量的值 如果相等,則他們的內存地址id(變量名)也相等
    20.dict.get(key,error) 有則返回值,無則返回提示
    21.列表:
    append(),intsert(1,‘two‘),extend(),sort(),reverse(),list[:],pop(),del li[0],copy(),clear()
  2. [i for i in range(10) if i>10]
    23.元組:x = 1, x = 1,2,3
    24.x = (1,2,3,4)
    2,3之間插入5
    x[:2] + (‘5‘,) + x[2:]
    25.python內置方法:
    divmod(10,2) 返回10對2的除法和余數
    pow(x,y,z) x的y次方,如果z存在,則%z
    float,int,long,list,tuple,str,dict 轉換為其類型
    round四舍五入 sum求和
    isinstance(1,int) 前者是否屬於後者類型
    ‘I am {0} ,I like {1}‘.format(‘xy‘,‘d‘)
    enumerate,返回一個可枚舉的對象(tuple)
    set
    sorted 排序
    all(集合) 集合中所有的元素都為真才為真
    any(集合) 集合中有一個元素都為真才為真
    cmp(x,y) x<y 返回負數 x==y返回0 x>y返回正數
    next() 返回叠代對象中的下一個元素
    reversed(range(10)) 逆置對象
    sorted() 對對象進行排序,返回一個新的列表
    zip 返回元組型
    x = [1,2,3]
    y = [4,5,6,7]
    print(list(zip(x,y))) [(1, 4), (2, 5), (3, 6)]
    map: list1 = map(lambda x:x**2,[1,2,3,4,5])
    第一個是處理條件,第二個是序列
    返回值是Object
    filter: list1 = list(filter(lambda x:x%3 == 0,range(100)))
    filter 第一個參數是過濾條件,第二個是要過濾的內容
    返回值是個Object,得轉換為其他類型
    help() 返回對象的幫助信息
    input 讀取用戶輸入的信息
    open 打開文件
    exec 執行動態語句塊 exec(‘a=1+2‘)

26.使用函數名doc可以查看函數文檔
27.閉包函數:
def fun1(x):
def fun2(y):
return xy
return fun2
28.字符串處理:
capitalize() 首字母大寫
title 首字母小寫
replace(‘1‘,‘2‘) 替換
upper 全部大寫
lower 全部小寫
swapcase 大小寫互換
lstrip 去掉左空格 strip 左右 rstrip右空格
split
startswith 以。。開頭 endswith以。。結尾
s.isalnum() 所有字符都是數字或者字母,為真返回 Ture,否則返回 False。
s.isalpha() 所有字符都是字母,為真返回 Ture,否則返回 False。
s.isdigit() 所有字符都是數字,為真返回 Ture,否則返回 False。
s.islower() 所有字符都是小寫,為真返回 Ture,否則返回 False。
s.isupper() 所有字符都是大寫,為真返回 Ture,否則返回 False。
s.istitle() 所有單詞都是首字母大寫,為真返回 Ture,否則返回 False。
s.isspace() 所有字符都是空白字符,為真返回 Ture,否則返回 False。
replace
find(‘t‘) 有則返回位置,無則返回-1
count(‘t‘) 字符串中數量
29.關鍵字:global 修改函數外的全局變量,nonlocal內部函數修改外部函數的局部變量
30.lambda函數:
g = lambda x,y:x
y
g(2,3) ---------6

31.字典:d = {k:v,k1:v1}
訪問:d[k],d.get(k)
修改:d[k] = ‘v2‘
刪除:del d[k] 刪除一個
d.clear() 清空所有
del dict 刪除字典
d.items() 返回(鍵,值)元組
d.key()
d.values()
d.pop(k) 刪除並返回值
x = {}
x = x.fromkeys((1,2,3),‘a‘)

  1. set
    特點:無序,不能通過索引或執行切片操作
    frozenset() 不可修改的集合
    創建:
    a = {1,2,3}
    a = set(‘boy‘)
    a = set([‘a‘,‘b‘,‘c‘,‘d‘])
    比較:s = {1,2,3} b = {2,5}
    s.difference(b) //找到s中存在,b中不存在的集合,返回新值
    添加:s.add()
    刪除:discard s.discard(3) //刪除不存在的元素不會報錯
    remove s.remove(3) //刪除不存在的元素會報錯
    pop s.pop() //刪除最後一個元素並返回新值
    取交集: s = {1,2,3} b = {2,5}
    s.intersection(b) //取交集,賦給新值
    判斷: s = {1,2,3} b = {2,5}
    s.isdisjoint(b) //判斷是否不存在交集(有交集False,無交集True)
    s.issubset(b) //判斷s是否是b的子集合
    s.issuperset(b) //判斷s是否是b的父集合
    取並集:s = {1,2,3} b = {2,5}
    s.union(b) //取並集,並賦新值
    更新:s = {1,2,3} b = {2,5}
    s.update(b)
    print(s) {1,2,3,5}
    33.文件處理:
    r 只讀 r+讀寫 w可寫,存在則覆蓋 w+讀寫,存在則覆蓋 a追加,不存在則創建

    f.read() 讀取文件全部內容為一個str
    f.readline() 讀取一行
    f.readlines() 讀取所有行,放到一個list中

    f.write() 只可寫字符串
    f.writelines() 可寫序列

    當出現提示亂碼時:添加encoding=‘UTF-8‘
    open(‘‘, ‘w+‘, encoding=‘UTF-8‘)

  2. xlrd處理表格

    #打開文件
    workbook = xlrd.open_workbook(r‘F:\‘)
    #獲取所有sheet
    workbook.sheet_names() 返回一個列表
    #根據sheet索引或者名稱獲取sheet內容
    sheet2 = workbook.sheet_by_index(1)
    sheet2 = workbook.sheet_by_name(‘sheet2‘)
    #獲取sheet2的名稱,行數,列數
    sheet2.name,sheet2.nrows,sheet2.ncols
    #獲取整行和整列的值(數組)
    rows = sheet2.row_values(3) #第四行內容
    cols = sheet2.col_values(2) #第三列內容
    #獲取單元格內容
    sheet2.cell_value(1,0).encode(‘utf-8‘)
    #獲取單元格內容的數據類型
    sheet2.cell(1,0).ctype

    xlwt 寫文件
    #創建工作簿
    f = xlwt.Workbook(encoding=‘utf-8‘)
    #創建第一個sheet
    sheet1 = f.add_sheet(‘sheet1‘)
    #寫數據,對應 行 列 值
    sheet1.write(0,1,label = ‘this is the test‘)
    #保存
    f.save(‘xx.xlsx‘)

  3. os模塊
    示例目錄:path = C:\Users\hwx518534\Desktop
    os.name nt/posix
    os.getcwd() 得到當前工作目錄
    os.curdir 當前目錄
    os.listdir(path) 返回指定目錄下的所有文件和目錄名 列表
    os.remove() 刪除一個文件
    os.rename() 重命名
    os.system() 執行系統命令
    os.mkdir()
    os.rmdir()
    os.exit() 終止當前進程
    os.chdir() 改變當前目錄
    os.walk() 返回三元組 第一個是文件夾地址 第二個是list,當前文件夾下所有目錄名字(不包括子目錄)
    第三個返回的是list,返回的是該文件夾下的所有文件(不包括子目錄)

    os.path模塊
    示例目錄:path = C:\Users\hwx518534\Desktop\temp.py
    os.path.abspath(file) 當前文件的絕對路徑
    os.path.dirname() 獲取當前文件目錄 C:\Users\hwx518534\Desktop
    os.path.split() 返回一個路徑的目錄名和文件名 (‘C:\Users\hwx518534\Desktop‘, ‘temp.py‘)
    os.path.isfile() os.path.isdir 檢測是否是文件或目錄
    os.path.exists() 檢測路徑是否存在
    os.path.getsize() 獲得文件大小(字節),如果是目錄返回0L,
    os.path.splitext() 分離文件名與擴展名
    os.path.join() 連接目錄與文件名 返回值為路徑
    os.path.basename() 返回文件名

  4. _開頭變量含義

    _xx表示受保護變量,不能通過from x import x 導入,可在對象和子類中訪問
    x表示系統定義的特殊變量
    __xx 私有成員,只有類對象自己可以訪問

  5. time模塊
    time.time() 紀元開始的秒數
    time.ctime() Wed Jan 31 17:50:57 2018
    time.localtime() time.struct_time(tm_year=2018, tm_mon=1, tm_mday=31, tm_hour=9, tm_min=51, tm_sec=54, tm_wday=2, tm_yday=31, tm_isdst=0)
    s = time.gmtime() s.tm_year ---2018
    time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    2018-01-31 18:06:25
    38.shutil模塊 --- 高級的文件,文件夾,壓縮包處理模塊
    shutil.copyfileobj(open(‘xx.py‘,‘r‘),open(‘x.txt‘,‘w‘)) -- 拷貝文件內容到另一個文件
    shutil.copyfile(‘xx.py‘,‘x1.py‘) --拷貝文件到另一個文件
    shutil.copystat(src,dst) --僅拷貝狀態信息
    shutil.copy(src,dst) --拷貝文件和狀態
    shutil.copytree(‘folder1‘,‘folder2‘) --遞歸拷貝文件夾
    shutil.rmtree(‘f1‘) --遞歸刪除文件(夾)
    shutil.move(src,dst) --重命名

python基礎知識總結(不斷更新。。。。)