Python的語言特性

Python的語言特性

Python是一門具備強類型(即變量類型是強制要求的)、動態性、隱式類型(不須要作變量聲明)、大小寫敏感(var和VAR表明了不一樣的變量)以及面向對象(一切皆爲對象)等特色的編程語言。你能夠很容易的經過Python解釋器獲取幫助。若是你想知道一個對象(object)是如何工做的,那麼你所須要作的就是調用help(<object>)!另外還有一些有用的方法,dir()會顯示該對象的全部方法,還有<object>.__doc__會顯示其文檔python

語法

  • Python中沒有強制的語句終止字符,且代碼塊是經過縮進來指示的。縮進表示一個代碼塊的開始,逆縮進則表示一個代碼塊的結束
  • 聲明以冒號(:)字符結束,而且開啓一個縮進級別
  • 行註釋以井號字符(#)開頭,多行註釋則以多行字符串的形式出現。賦值(事實上是將對象綁定到名字)經過等號(「=」)實現,雙等號(「==」)用於相等判斷,」+=」和」-=」用於增長/減小運算(由符號右邊的值肯定增長/減小的值)。這適用於許多數據類型,包括字符串。你也能夠在一行上使用多個變量

序列數據類型

  • Python具備列表(list)、元組(tuple)和字典(dictionaries)三種基本的數據結構。
  • list列表的特色跟一維數組相似(固然你也能夠建立相似多維數組的「列表的列表」),能夠嵌套列表,能夠存儲多種數據類型,能夠排序,截取,插入,複製,擴展長度等。如:
mylist = ["List item 1", 2, 3.14] sample = [1, ["another", "list"], ("a", "tuple")] membernum = [1,2, "冰原狼", 90, "雄鹿", "獅子"]
  • 元組(tuple)數組與list不一樣的是list元素長度均可被修改,數組中的元素和長度是不能夠被修改的,元組是不可變的一維數組,數組中第一個元素索引值(下標)爲0,使用負數索引值可以從後向前訪問數組元素,-1表示最後一個元素。數組元素還能指向函數
temp=("橙子","蘋果","句子","車釐子")
  • 字典:字典是另外一種可變容器模型,且可存儲任意類型,對象字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中
>>> mydict = {"Key 1": "Value 1", 2: 3, "pi": 3.14} >>> mydict["pi"]

Python 模塊

  • Python 模塊(Module),是一個 Python 文件,以 .py 結尾,包含了 Python 對象定義和Python語句,模塊能定義函數,類和變量,模塊裏也能包含可執行的代碼。
  • 模塊定義好後,咱們可使用 import 語句來引入模塊,好比要引用模塊 math,就能夠在文件最開始的地方用 import math 來引入。在調用 math 模塊中的函數時,用模塊名.函數名
  • Python 的 from 語句讓你從模塊中導入一個指定的部分到當前命名空間中:
#這個聲明不會把整個 fib 模塊導入到當前的命名空間中, #它只會將 fib 裏的 fibonacci 單個引入到執行這個聲明的模塊的全局符號表。 from fib import fibonacci
  • From…import* 語句 把一個模塊的全部內容全都導入到當前的命名空間也是可行的:from modname import *
  • 當你導入一個模塊,Python 解析器對模塊位置的搜索順序是:首先搜索當前目錄,若是不在當前目錄,Python 則搜索在 shell 變量 PYTHONPATH 下的每一個目錄,若是都找不到,Python會察看默認路徑。UNIX下,默認路徑通常爲/usr/local/lib/python/
  • 模塊搜索路徑存儲在 system 模塊的 sys.path 變量中。變量裏包含當前目錄,PYTHONPATH和由安裝過程決定的默認目錄

命名空間和做用域

每一個函數都有本身的命名空間。類的方法的做用域規則和一般函數的同樣。 Python 會智能地猜想一個變量是局部的仍是全局的,它假設任何在函數內賦值的變量都是局部的。 所以,若是要給函數內的全局變量賦值,必須使用 global 語句。global VarName 的表達式會告訴 Python, VarName 是一個全局變量,這樣 Python 就不會在局部命名空間裏尋找這個變量了。shell

Python中的包

  • 包是一個分層次的文件目錄結構,它定義了一個由模塊及子包,和子包下的子包等組成的 Python 的應用環境。簡單來講,包就是文件夾,但該文件夾下必須存在 _init_.py 文件, 該文件的內容能夠爲空。_int_.py用於標識當前文件夾是一個包。
  • 當訪問包內的模塊 方法的時候,會執行_int_.py一次文件裏的代碼

例若有一個包叫package_runoob,包內有runoob1.py文件和_int_.py 文件裏測試代碼:編程

if __name__ == '__main__': print('做爲主程序運行') else: print('package_runoob 初始化')

當在包外部(或包的同級)調用runoob1內的方法的時候,會執行一次_int_.py裏的代碼。數組

globals() locals() 函數 和reload() 函數

根據調用地方的不一樣,globals() 和 locals() 函數可被用來返回全局和局部命名空間裏的名字。 若是在函數內部調用 locals(),返回的是全部能在該函數裏訪問的命名。 若是在函數內部調用 globals(),返回的是全部在該函數裏能訪問的全局名字。 兩個函數的返回類型都是字典。因此名字們能用 keys() 函數摘取。數據結構

當一個模塊被導入到一個腳本,模塊頂層部分的代碼只會被執行一次。 所以,若是你想從新執行模塊裏頂層部分的代碼,能夠用 reload() 函數。該函數會從新導入以前導入過的模塊。語法以下: reload(module_name)編程語言

異常處理

python提供了兩個很是重要的功能來處理python程序在運行中出現的異常和錯誤。你可使用該功能來調試python程序。函數

  • 異常處理 ,捕捉異常可使用try/except語句。try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息並處理。若是你不想在異常發生時結束你的程序,只需在try裏捕獲它。若是在try子句執行時沒有發生異常,python將執行else語句後的語句(若是有else的話),而後控制流經過整個try語句;例如:
try: fh = open("testfile", "w") fh.write("這是一個測試文件,用於測試異常!!") except IOError: print "Error: 沒有找到文件或讀取文件失敗" else: print "內容寫入文件成功" fh.close()

使用except而帶多種異常類型:

try:
    正常的操做
   ...................... except(Exception1[, Exception2[,...ExceptionN]]]): 發生以上多個異常中的一個,執行這塊代碼 ...................... else: 若是沒有異常執行這塊代碼

try-finally 語句

try: <語句> finally: <語句> #退出try時總會執行 raise
  • 斷言(Assertions)
相關文章
相關標籤/搜索