Python學習隨筆(2)之詞彙語法約定

Python簡介html

行結構和縮進

在Python中,分號是可選的,當使用分號時,能夠將多條語句寫在一行上,不然,程序的每條語句都是以換行符結束,可使用斜槓\另起一行,將長語句分爲幾行python

In [1]: a = 3 * 4\
   ...: + 1

In [2]: a
Out[2]: 13

另外,在定義字符串時使用三引號、列表、元組和字典時,也能夠分佈在多行,不須要使用續行符編程

In [4]: s = """ Hello
   ...: World
   ...: """

In [5]: l = [1, 3,
   ...: 4
   ...: ]

縮進表示不一樣的代碼塊,如函數體,條件語句,循環和類。代碼塊中首條語句的縮進是任意的,可是整個代碼塊的縮進必須保持一致。編輯器

In [7]: if a:
   ...:     pass
   ...: else:
   ...:     pass
   ...:

當一個空的代碼塊時,可使用pass語句作佔位符。函數

在進行編程時,儘管可使用Tab鍵進行縮進,可是並不鼓勵這樣所,Python首選的是用空格,由於遇到製表符時,系統會將其移動到下一個爲8倍數字符處。可能出現空格鍵和tab鍵混用的狀況。編碼

#後面的內容都表示註釋,但出如今字符串中的#號無註釋做用code

除非在交互式環境下,不然解析器將忽略全部的空白行,交互模式下空白行表示輸入結束htm

標識符和保留字

標識符是識別變量、函數、類、模塊和其餘對象的名稱。標識符能夠包含字母、數字和下劃線,可是以非數字開頭。標識符是區分大小寫的,$、%、@等特殊字符不能出如今標識符中。另外,保留字如if,else,for,while等不能做爲標識符。
保留字有對象

and        del        from        nonlocal        try        as        ellif        global        not        while        assert    else        if        or        with        break        except        import        pass        yield       class        exec        in        print        continue        finally        is        raise        def        for       lambda        return

如下劃線開始或者結束的標識符一般有特殊的含義,如意下劃線開始的標識符不能使用import導入,先後均有雙下劃線的如__init__是保留的特殊方法,石油前面帶有雙下劃線的標識符是用因而吸納私有類成員的blog

數字字面量

數字字面量能夠包含額外的字符以便於閱讀,如0x1234。Python內置的數字字面量分爲四種類型:布爾型、整數、浮點型、複數。
布爾型:True和False,其整數值分別爲1和0
整型:Python中的整型是任意位數的,若是要定義一個很大的整數,只須要寫出左右位數就能夠了。也能夠在大數錢添加L或小寫l標誌,可是現在這種區分沒必要要了。
浮點型:如123.4e+03的數字表示浮點型
複數:如12.3+23.5J,在整數或者浮點數後面加上j或者J

字符串字面量

字符串定義可使用單引號、雙引號或三引號。三種形式在語義上沒有區別,可是單引號和雙引號的字符串必須定義在一行上,而三引號能夠定義在多行上幷包含格式符(如回車等)。由空格。換行符或續行符隔開的相鄰字符串將被鏈接起來。

In [1]: s1 = "hello li"

In [2]: s2 = """hello
   ...: li"""

In [3]: s3 = "hello" 'li'

In [4]: s1
Out[4]: 'hello li'

In [5]: s2
Out[5]: 'hello\nli'

In [6]: s3
Out[6]: 'helloli'

使用反斜槓\能夠用於轉義字符,如換行符、反斜槓、引號和非打印字符,在使用時,須要在前面添加反斜槓進行轉義。

在python 2中,字符串對應於8bit字符或面向字節的數據,它們沒法徹底支持國際字符集和Unicode。爲了解決這種限制,Python 2對Unicode數據使用了單獨的字符串類型,若是想輸入Unicode字符串字面量,要在第一個引號錢添加前綴u。
在Python 3中沒必要添加這個前綴字符,添加後會出現語法錯誤,由於全部字符串都是Unicode編碼。運行Python 2時,使用-u選項就能夠不用添加前綴u,由於全部字符都會做爲Unicode對待。

容器

Python容器數據類型包括列表、元組和字典等包含其餘對象的集合

In [17]: a = [1, "hello", [4]]    #列表

In [18]: b = (12, "li", 3)    #元組

In [19]: c = {"a":2, "b":"hello"}    #字典

文檔字符串

若是模塊、類或函數定義的第一天語句是一個字符串,則該字符串將成爲相關對象的文檔字符串

class ClassName(object):
    """docstring for ClassName"""
    def __init__(self, arg):
        super(ClassName, self).__init__()
        self.arg = arg

經過__doc__屬性能夠訪問文檔字符串,如

print ClassName.__doc__

文檔字符串的縮進必須與定義中的代碼塊的縮進一致

裝飾器

函數、方法或類前面定義一個特殊的符號,稱爲裝飾器,其目的是修改定義後面的行爲。裝飾器使用@符號表示,必須放在單獨行而且位於對應的函數、方法或類以前,也可使用多個裝飾器,但每一個裝飾器必須位於不一樣行上。

class fun(object):
    @staticmethod
    def foo():
        pass

源碼編碼

編寫Python源程序通常使用標準7bit的ASCII碼,可是也能夠在Python程序的第一行或第二行包含一個特殊的編碼註釋,就可使用不一樣的編碼編寫Python

# coding: UTF-8

def function():
    pass

保存到文件也須要保存到相應的格式,如上面的文件須要保存到utf-8格式,通常IDE會自動保存,可是若是是使用文本編輯器,則須要注意

相關文章
相關標籤/搜索