python 之路-語法(一)

  • 2020 年 1 月 13 日
  • 筆記

python 之路-語法(一)

     Python 是一種面向對象、解釋型電腦程式語言,語法簡潔清晰,特色之一是強制用空白符

     作為語句縮進,既支援面向過程編程也支援面向對象編程。

     Python的設計目標之一是讓程式碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的

     標點符號和英文單字,讓程式碼看起來更加整潔美觀。

     Python是一種高級語言,使用Python編寫程式時無需考慮如何管理程式使用的記憶體一類的底層

     細節Python 可以直接從源程式碼運行,在電腦內部python解釋器把源程式碼轉換成位元組碼的中

     間形式,然後在把它編譯成電腦使用的機器語言。

     Python 具有豐富和強大的庫,它常被稱為『膠水語言』,能把用其他語言製作的各種模組

    (尤其是C/C++)很輕鬆地連結在一起。python的標準庫很龐大,它可以幫助你處理各種工作,

     包括正則表達式、文檔生成、單元測試、執行緒、資料庫、網頁瀏覽器、CGI、FTP、電子郵

     件、XML、HTML、WAV文件、密碼系統、GUI(圖形用戶介面)、TK和其他與系統有關的操作。

一、 python 基礎    

    1. python 數據類型有整數、長整數、浮點數、複數和布爾型。

         整  型(int)       python自動識別數字類型,如果輸入的類型是整型就會存儲整型

         長整型(long)      如果整數發生溢出python會自動將整數轉換為長整型(或有字母L)                浮點型(float)     用來處理實數,既帶有小數的數字 例:3.21 和 3.3E-1

         複數型(complex)   如 1 + 2j 2.2 + 1.1j

         布爾型(bool)      1 或 0 對應 Ture 或 False 

    2.字元串

         python中可用單引號或雙引號來表示字元串;

         python使用三引號(''' 或 """) 來表示多行字元串,通過''轉義;

         通過r 進行反轉義-既原樣顯示,通常r'n' 就會顯示n而不是換行;

         python允許處理unicode字元串,前面加u  ,例:u'shuoming u'。

    3.變數命名原則

         a. 大小寫字母、數字或下劃線組成;

         b. 數字不能為第一位;

         c. 不能與關鍵字重複;

         註:以下關鍵字不能聲明為變數名;

['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif',                 'else','except', 'exec', 'finally', 'for', 'from', 'global', 'if','import',

          'in', 'is','lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try'

          , 'while', 'with','yield']

        變數在記憶體中的變化機制–變數賦值

        變數中如果修改字元串就會重新開闢空間,C語言中沒有字元串的概念只有字元概念,

        所有字符集合組成字元串的概念

        name1 = 'apache'

        name2 = name1

        如果變數name1再次被賦值後,變數name2的值不會改變:由於變數name1賦值給變數

        name2時只是將其資訊保留在變數name2中,並沒有將'apache'賦值給name2;

    4.輸入輸出

        >>> name = input('請輸入用戶名:')   #將輸入的用戶名賦值給變數name

        請輸入用戶名:shuoming

        >>> print(name)                      #輸出變數name資訊

        shuoming

    5.運算符及優先順序

       (1)運算符

        算數運算符    :  +  –    *   /    %(商取余)  **(冪運算)  // (商取整)

        比較運算符    :  ==   !=   <> >  <   >=  <=   is    

        賦值運算符    :  =   +=  -=    *=   /=   %=  **=    //=

                *= 乘法賦值運算符  c *= a 等效於 c = c * a

                /= 除法賦值運算符  c /= a 等效於 c = c / a

                %= 取模賦值運算符  c %= a 等效於 c = c % a

                **= 冪賦值運算符   c **= a 等效於 c = c ** a

                //= 取整除賦值運算符  c //= a 等效於 c = c // a

        位運算符      :  & | ^ ~ << >>

        邏輯運算符    :  and     or     not

        成員運算符    :  in      not in

        身份運算符    :  is      not  is

        #  "+"  兩個對象相加 ,數字 或 字元串

        # 「-」 去一個數字的相反數或者實現兩個數字相減

        #  "*"  兩個數的相乘或者字元串重複

        # < > != <= >= == 小於、大於、不等於、小於等於、大於等於、等於號 ,返回一個bool值

        # 與運算兩個1為1,其他為0

        # 或運算兩個0為0,其他為1

        # 異或運算兩個1  、0 為0,其他為1

        # 左移一個單位相當於乘2,左移兩個單位相當於乘4,左移n個單位相當於乘2的n次冪。

        # is 判斷其中」==「 表示值相等,而 」is「 表示同一對象。

       (2)優先順序

        # 優先順序排名第一名—函數調用、定址、下標

        # 優先順序排名第二名—冪運算 **

        # 優先順序排名第三名—翻轉運算~

        # 優先順序排名第四名—正負號

        正負號的使用方法緊挨著操作數的,否則會出錯,這就說明正負號的優先順序優於加減乘除運算

        # 優先順序排名第五名—*  /  %   

        # 優先順序排名第六名—+   –

        # 優先順序排名第七名— <<  >>

        # 優先順序排名第八名—按位 &  ^   | 

        # 優先順序排名第九名—比較運算符

        # 優先順序排名第十名—邏輯 not and or

        # 優先順序排名十一名—lambda 表達式

二、數據結構

    python 中有三種內建的數據結構:列表、元祖、字典。

    1.列表

        定義–list 是處理一組元素的集合容器,列表是可變得數據結構,例如:[1,2,'str'] []

        方法– in:判斷列表是否包含某項用in;支援索引和切片;使用len() 查看長度;使用del 

                   刪除列表中的項

            # in

>>> print students

            ['zhao', 'wang', 'zhang', 'liu']

            >>> "wang" in students                

            True

            >>> "lihongye" in students

            False

            >>> 

            # len

            >>> test_list

            ['shuoming', 'python', 'search', 'python', 'automatic', 1, 2]

            >>> len(test_list)

            7

            # del

            >>> test_list

            ['shuoming', 'python', 'search', 'python', 'automatic', 1, 2]

            >>> del test_list[0]         # 刪除第一個元素

            >>> test_list

            ['python', 'search', 'python', 'automatic', 1, 2]

            >>> del(test_list[2:4])      # 刪除2,3兩個元素,也可間隔元素刪除

            >>> test_list

            ['python', 'search', 1, 2]   

            >>> del test_list              # 刪除整個列表

            >>> test_list

            Traceback (most recent call last):

              File "<stdin>", line 1, in <module>

            NameError: name 'test_list' is not defined

            >>> 

        list 常用函數:

        ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove',          'reverse', 'sort',『clear』]

        pop    : 只刪除列表最後一個值;

        remove :可以刪除特定值  例:name_list.remove('python')

        insert :在固定位置插入  例:name_list.insert(3,"python")

        sort   :       排序後特殊字元在前  

        extend :       a+b   或 a.extend(b)

        copy   :       拷貝(深拷貝和淺拷貝)

        1)append

            >>> name_list.append("python")

            >>> name_list

            ['shuoming', 'python', 'search', 'python']

        2)index

            >>> name_list.index("python")

            1

        3)count

            >>> name_list.count("python")

            2

        4)insert

            >>> name_list.insert(3,"python")

            >>> name_list

            ['shuoming', 'python', 'search', 'python', 'python']

        5)pop()

            >>> name_list.pop()

            'python'

            >>> name_list

            ['shuoming', 'python', 'search', 'python']

        6)remove

            >>> name_list.remove('python')

            >>> name_list

            ['shuoming', 'search', 'python']

        7)reverse

            >>> name_list

            ['shuoming', 'search', 'python', '@', '$']

            >>> name_list.reverse()

            >>> name_list

            ['$', '@', 'python', 'search', 'shuoming']

        8)sort

            >>> name_list

            ['shuoming', 'search', 'python',  '@', '$']

            >>> name_list.sort()

            >>> print (name_list)

            ['$', '@', 'python', 'search', 'shuoming']

        9)clear

>>> test_list

            ['shuoming', 'python', 'search', 'python', 'automatic', 1, 2]

            >>> test_list.clear()

            >>> test_list

            []

            >>>

    2.元祖

        元祖(tuple)是通過圓括弧()其中用逗號分隔的項定義例如:(1,2,'str');與列表

        很相似,但元祖不能修改。

        由於元祖不能更改,因此數據更加安全;

        方法– 可以使用 in 判斷元素是否在tuple中,支援索引和切片;

        A : tuple與list可以互相轉換,使用內置函數list()和tuple()。

            tuple_list = [1,2,'str']

            print(tuple_list)  # [1,2,'str']

            to_tuple = tuple(tuple_list)

            print(to_tuple)  # (1,2,'str')

            to_list = list(to_tuple)

            print(to_list)  # [1,2,'str']

        B : 元祖最常用法是列印語句

            name = 'Mr li'

            age = 25

            msg ='''

            name : %s

            age : %d

            ''' % (name,age)

            print(msg)

            name : shuoming

            age : 10

        元祖常用函數如下:

        count(value)     — 返回元祖中值為values元素的個數

            num_tuple = (1,2,'str')

            num_ruple.count(2) # 1

        index(value,[start,[stop]])     — 返回列表中出現的值第一個value的索引,

                                            如果沒有則返回 ValueError

            t = (1, 2, 3, 1, 2, 'str')

            print(t.index(3))

            try:

            print(t.index(str))

            except ValueError:

            print("ValueError")  # ValueError

    3.字典

        字典是另一種可變容器模型,像其他容器模型一樣可隨意存儲任一類型對象。

        字典由key和value組成鍵值對。字典也被稱作關聯數組或哈希表。

        每個鍵和值用冒號隔開(:),每對用逗號分開,整體放在花括弧中{}例:

        dict = {'key1':'value1','key2':'value2','key3':'value3'}

            鍵必須唯一,值可以重複,值可取任意數據類型。

三、控制流

    1.if 語句

        if 條件判斷表達式

        if condition:

            action1     

        elif condition:

            action2

        else:

            action3

        # action 必須有縮進量 例如:

        a = 10

        if a>=80:

            print("優秀")

        elif a>=60:

            print("及格")

        else:

            print("不及格")

    2.while 語句

        while 循環為真時執行循環體

        while  條件為真:

            循環執行該部分語句

        else:

            條件為假,執行該部分語句

        例:

        i=5

        while i:

print  "hello"

i=i-1

        else:

            print "結束"

    3.for 語句

        a=range(1,5)

        print a

        range(1,5,2)     步長為2

        for   k  in range(0,3): (range函數 集合) 或者 [1,2,3,4,5] 等集合

    k in [1,2,3,4,5]

k in (1,2,3,4,5)

i=0

print i

i=i+1

print i

        註: 當 循環字典的時候,需要兩個變數

        k={"姓名":"calvin","籍貫":"state"}

        for ks,vs in k.items():

print ks

print vs

    4.break 語句

        break 語句是強制停止循環執行的意思,break語句用剛在循環語句中,出現break

        的地方直接停止本層循環執行。

        例:

        a=1

        while a:

print a

a=a+1

if a==5:

            break

    5. continue 語句

        continue 語句的功能是強制停止循環中的這一次執行,直接跳到下一次執行。

        例:

        a=1

        while a<7:

a=a+1

if a==3:

                continue

print a

          ———————–見續 python 之路-語法(二)———————–