博文概要:
一、Python語句和語法
二、Python標識符
三、基本編程風格python
1、Python語句和語法
一、能夠從一行的任何地方開始
二、續行
\:
''':閉合操做符,單一語句跨多行編程
三、代碼組
、縮進相同的一組語句構成的一個代碼塊
、首行以關鍵字開始,如if、while 等,以冒號結束
、Python使用縮進來分隔代碼組,同一代碼組的代碼行必須嚴格左對齊,不然會形成語法錯誤
、同一行放置多個語句
;:以分號做爲分隔符
、模塊
每個Python腳本文件均可以被當成是一個模塊;模塊的名稱也是腳本名稱
模塊裏的代碼能夠是一段直接執行的腳本,也能夠是一些相似庫函數的代碼從而可由別的模塊執行導入(import) 由於模塊在被import的那一刻就會執行;因此模塊中通常存放的都是一些可調用的代碼段;oracle
#!/usr/bin/python2.6 #coding=utf-8 name = "Tom" def prinName(a): print a #縮進相同的一組語句構成的一個代碼塊;num與以前的代碼塊已經毫無關係了 num = 4 print num print prinName(name) #導入模塊是須要指定模塊的目錄路徑的; [root@oracle ~]# cat mod.py #!/usr/bin/python2.6 def prinName(a): print a b = "Black" print a+b [root@oracle ~]# cat import.py #!/usr/bin/python2.6 # import mod mod.prinName()
2、標識符
一、標識符是計算機語言中容許做爲名字的有效字符串集合
其中有一部分是關鍵字,它們是語言的標識符,所以是保留字,不能用於其它用途
python還有稱爲"內建"的標識符集合,雖然不是保留字,仍不推薦使用這些特別的名字
二、Python標識符
第一個字符只能使用字母或者下劃線
餘下的字符可使用字母、數字或下劃線
區分字符大小寫函數
3、Python基本編程風格
一、註釋
既不能缺乏註釋,也要避免過分註釋
二、文檔
Python容許經過__doc__動態得到文檔字符串
三、縮進
統一縮進4個字符
四、標識符名稱
見名知意this
>>> str.__doc__ 'str(object) -> string\n\nReturn a nice string representation of the object.\nIf the argument is a string, the return value is the same object.' >>> >>> >>> print str.__doc__ str(object) -> string Return a nice string representation of the object. If the argument is a string, the return value is the same object
Python的命名慣例
一、以單一下劃線開頭的變量名(_x)不會被from module import *語句導入
二、先後有下劃線的變量名(__x__)是系統變量名,對解釋器有特殊意義
三、以兩個下劃線開頭、但結尾沒有下劃線的變量名(__x)是類的本地變量
四、交互式模式下,只有單個下劃線的變量名(_)用於保存最後表表達式的結果spa
>>> a = "I love:" >>> b = "pig" >>> print a+b I love:pig >>> print a.__add__(b) I love:pig
class str(basestring) | str(object) -> string | | Return a nice string representation of the object. | If the argument is a string, the return value is the same object. | | Method resolution order: | str | basestring | object | | Methods defined here: | | __add__(...) | x.__add__(y) <==> x+y | | __contains__(...) | x.__contains__(y) <==> y in x | | __eq__(...) | x.__eq__(y) <==> x==y | | __format__(...) | S.__format__(format_spec) -> string | | __ge__(...) | x.__ge__(y) <==> x>=y | | __getattribute__(...) | x.__getattribute__('name') <==> x.name | | __getitem__(...) | x.__getitem__(y) <==> x[y]
Python 文件結構debug
#!/usr/bin/python2.6 # (1)起始行 #coding=utf-8 #mod.__doc__ 引用類的文檔 #"this is test module" (2)模塊文檔(文檔字符串) import sys #(3)模塊導入 import os debug = true name = "Tom" #(4)全局變量 class FooClass(object): #(5)類定義(如有) "Foo class"
pass
def test():
"test function" foo = FooClass() #將類實例化
if debug:
print 'ran test()'
def prinName(a): #(6)函數定義(如有) print a #縮進相同的一組語句構成的一個代碼塊;num與以前的代碼塊已經毫無關係了 num = 4 print num print prinName(name) if __name__ == '__main__'#(7)主程序
test()
prinName()
Python文件主程序
一、主程序
不管當前模塊是被別的模塊導入仍是做爲腳本直接執行,都會執行這部分代碼
二、注意:全部的模塊都有能力執行代碼
最高級別的python語句(沒有縮進的)在模塊被導入時就會執行,不管是否真的須要執行
三、穩當的作法:除了那些真正須要執行的代碼以外,全部的功能代碼都經過函數創建,所以
僅在主程序模塊中編寫大量的頂級可執行代碼
用於被導入的模塊只應該存在較少的頂級執行代碼
四、__name__指示模塊應該如何被加載 每個模塊都有一個名爲__name__的內建變量,此變量值會根據調用此模塊的方式發生變化
若是模塊是被導入,__name__的值是模塊的名字
若是模塊是直接執行,__name__的值是"__main__":code