python语法知识_Python 语法小知识
對象通過引用傳遞的 不支持自增 自減之類的 i++ ++i 多元賦值 ?右邊是元組 ?,多元賦值可以實現不需要中間變量 交換兩個變量的值 _xxx_ ?系統定義的名字 _xxx ? 私有變量 python對象的類型和內存都是在運行時才確定的 ?當對象被創建時,就創建了一個引用計數 del 刪除一個對象的引用 垃圾收集器手機引用計數器為0的對象 然后將該對象銷毀 并釋放內存 python使用對象模型來存儲數據,對象都擁有三個特性:身份、類型、值。身份可以通過內建函數ID()來得到,類型可以通過type()來得到。 所有類型對象的類型都是type。 所有內建類型均支持比較運算,多個比較運算的求值順序為從左到右。 ?<> 和 != 都是不等于的意思 is操作符來測試兩個變量是否指向同一個對象 int()等看起來像函數,實質上是類,當你調用時他們生成該類的一個實例,所以叫工廠函數。 函數可以后定義 但必須在該函數運行時 調用的相關函數已經聲明完成? 在函數體內定義的函數 只能在函數體內部被調用? 裝飾器是在函數調用之上的修飾,以@開頭,裝飾器可以和函數調用一樣堆疊起來 可以將函數作為參數來傳遞,并在函數體內調用這些函數。函數可以有默認參數,但是所有必須的參數都要在默認參數之前, *和** 支持變長參數,*是元組 表示非關鍵字參數 **是字典 表示關鍵字參數,關鍵字和非關鍵字參數都可以用在同一個函數中,只要關鍵字參數是最后一個參數并且非關鍵字元組先于它之前出現即可。 lambda關鍵字創造匿名函數,,lambda表達式的定義和聲明必須在同一行 filter() 一個過濾函數過濾元素,返回為真的元素被保留,最后返回的對象是一個從原始隊列中過濾后的隊列 map() 和filter()類似,不過map返回的是所有值的列表 reduce()? 函數內部的變量有局部作用域,為了防止局部變量在函數體內把全局變量的值給覆蓋掉,可以在函數體內使用global關鍵字,指明訪問的是全局變量 python語法上支持多個函數嵌套級別,可以匹配靜態嵌套的作用域。 遞歸.. 函數包含對自身的調用 生成器是一個帶有yield語句的函數,一個生成器能暫停執行并返回一個中間結果,那就是yield語句的功能,返回一個值給調用者并暫停執行,當生成器的NEXT()方法被調用的時候,他會從暫停的地方繼續執行。 py2.5中還可以將值送回給生成器,并且在生成器異常時拋出異常,并要求生成器退出。 模塊 sys ?sys.path 查看加載模塊的路徑 ?sys.modules 查看當前加載的模塊都是那個路徑下的 ?默認加載第一個碰到的模塊 當訪問一個屬性時,先搜索局部空間-》全局空間-》內建空間 ?先搜索到的覆蓋后面搜索到的 from...import.. 是導入模塊的指定屬性。import...as... 一個模塊無論不導入多少次,只被加載一次,只從模塊導入名字的副作用是,這些名字會成為你局部空間的一部分,可能會覆蓋你已經存在的同名字對象。 reload()可以重新加載一個已經導入的模塊,而這個模塊必須是完全導入的,import sys.modules()包含當前導入的包的名稱及位置 文件 文件對象不僅可以用來訪問對象,也可以訪問其他類型抽象層面上的‘文件’。內建函數open() file()都會返回一個文件對象,對該文件的后續操作都需要用到該文件對象。 open(filename,mode,buffer) filename 文件名稱 mode 訪問模式 buffer緩存模式 讀 read() 全部,返回字符串 ? readline() 一行,返回字符串 readlines() 全部,返回字符串列表 寫 write() writelines() ?并沒有writeline方法 ? 在讀文件一行 或者寫文件一行時 read write ?并不會刪除或者添加尾部的換行符,需要你手動處理 移動 seek() 可以移動文件指針到文件中不同的位置 文件迭代器 ?更高效的讀取文件 ?for eachline in fd: close() 關閉文件 ? print 語句默認在輸出末尾加一個換行符,如果你read一行,然后用print輸出,末尾則會有兩個換行符,在print輸出時,在末尾加上逗號,則可避免添加換行符 標準文件有三個 sys.stdin ?sys.stdout ?sys.stderr sys.argv 是命令行參數的列表 ?sys.argv[0] 是該文件名 ?沒有sys.argc 用len(sys.argv)獲得 錯誤異常 任何在try語句塊里的代碼都會被檢測,檢查是否有異常發生。 try組要有try..except和try..finally兩種方式,這兩種方式是互斥的,一個try語句可以對應多個except,但只能有一個finally 在一個except語句中可以處理多個異常,但這些異常需要放進一個元祖里。 捕獲所有異常,使用exception模塊 try也可以和else配合,在try中沒有異常被檢測到的時候,執行else中的代碼。 finally字句則是,無論異常是否發生都會被執行的代碼 try-except-else-finally with語句的目的在于從流程圖中把try except finally關鍵字和資源分配釋放相關代碼統統去掉。 斷言 assert,如果 字典 字典是唯一內建的映射類型。 只有對象是可以hash的才可以作為字典的鍵,因為字典是亂序的排序的,如果要獲得有序的排列,在循環前使用內建sorted()函數處理一下字典 字典比較 1 比較大小 長度 ?2 比較鍵大小 ?3 比較值大小 集合 循環 與序列相關的內建函數有soreted() 排序 reversed() 反轉 enumerate() 按照key和值遍歷 ?zip() break 結束當前循環 跳轉到下一句 continue ?終止當前循環,忽略剩余語句,然后回到循環頂端 pass ?不做任何事,只是結構需要 迭代器,他為序列類的對象提供了一個類序列的接口,python的迭代無縫的支持序列對象,而且還允許程序迭代非序列類型。你可以迭代不是序列,但表現出序列行為的對象。可以迭代序列 字典 文件 列表解析,可以用來動態的創建列表,[expr for i in if xxx] seq,duiseq中的每個元素應用expr表達式,然后產生新列表。列表解析表達式可以取代內建的map lambda表達式 生成器表達式是列表解析的一個擴展, 序列 字符串 列表 元祖 查看類的屬性 dir(class) 或者 class.__dict__
總結
以上是生活随笔為你收集整理的python语法知识_Python 语法小知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ov5640帧率配置_逃离塔科夫怎么提升
- 下一篇: 服务器内存会显示ecc么,服务器内存ec