【隨堂筆記】Python 程式概論


  • 在 Python 是物件的世界,字串也是物件
  • 變數命名:Python 規定變數命名規則需要為英文字母開頭或是底線開頭(底線通常為私有變數命名使用,這部份先記得就好)
  • 資料型別:
    int 整數:指沒有小數的數字
    float 浮點數:有小數的數字
    bool 布林:代表真假值(True/False),進行條件判斷使用
    str 字串:由一個個字元(character)組成的字串
    NoneType 型別:None 代表沒有值的物件
  • Python 不用像 C 語言字串一樣,最後一個字元為 \0
  • C 語言 vs Python

    // C 語言使用 "" 雙引號包裹字串,'' 單引號包裹字元
    char name[5] = "Jack";
    
    # Python 中可以使用單引號或雙引號包裹字串
    name = 'Jack'
    
  • 跳脫字元:

    # 正確:\' 讓 ' 視為字串一部分,印出 Jack's 字串
    text = 'Jack\'s'
    print(text)
    

    Output:

    Jack's
    
  • 字串切片 slice:可以設定範圍取出子字串
    text = 'hello'
    # 注意 [:3] 代表從 0 到 2(不含結束的 3),所以是 0, 1, 2:hel
    print(text[:3])
    
    Output:
    hel
    
  • 注意空白也算一個字元長度
  • 是否有在字串 in:
    text = 'hello world'
    print('worl' in text)
    
    Output:
    True
    
  • 替代子字串 replace:replace(原字串, 替代字串)
  • 可變物件(mutable)vs 不可變物件(immutable)
    可變物件(mutable):可以更改內容的物件
    不可變物件(immutable):不可以更改內容的物件
    p.s.
    Python 中常用的不可變物件(immutable):整數、浮點數、布林、字串和 tuple(元組)等
    Python 中常用的可變物件(mutable):list(串列)、dict(字典)、set(集合)

    若 'Python' 字串物件一直沒被使用,則經過一段時間就會被系統回收,Python 直譯器會刪除該物件。這動作就叫記憶體回收(garbage collection)
    garbage collection -> reference counting 機制(當物件被使用的計數為 0 時,回收記憶體)

  • Python 容器物件:可以存多筆資料 ex. tuple, list
    (1) tuple(元組)容器物件:可以存放任何資料型別的一個容器物件
    p.s. tuple 在 Python 是不可變的物件
    tuple 基本操作:

    #  使用 () 將元素包裹
    age_1 = (1, 23, 41, 73)
    # 若僅有一個元素則最後要加上 , 讓程式知道是 tuple 而非整數 (18)
    age_2 = (18, )
    

    (2) list 容器物件:類似 C 語言陣列的容器物件,但比起陣列多了許多彈性和功能(元素可以是不同的資料型別)
    list 取值:

    names = ['Jack', 'Joe', 'Marry']
    # Jack
    print(names[0])
    # ['Jack', 'Joe'] 不含結尾 2
    print(names[0:2]) # 注意!這邊跟tuple取值不同!
    

    (3) set 容器物件:元素內容不重複,可以用來判斷字串、整數等不重複個數
    p.s.
    set 不像 list 支援依序排列,set 元素不會按照順序排列
    set 無法使用 index 取值,須轉為 list 才可用 index 取值

    (4) dict 容器物件:常用容器物件,可以透過 key/value 鍵值方式來儲存資料,方便存取

    dict_1 = {
      'key_1': 'value_1',
      'key_2': 'value_2',
      'key_3': ['list_value_1', 'list_value_2']
    }
    
  • C 語言 struct 結構:類似 dict 字典容器物件的資料型別,可以包含多種資料型別當作成員(member)的容器結構
    (1) 結構體樣本宣告:定義組成結構體的內容成員的資料型別與名稱
    (2) 結構體變數宣告:宣告結構體樣本名稱和變數
    #include <stdio.h>
    int main(void) {
      // 結構體樣本宣告,假設今天你是電商工程師要創建一個同時可以紀錄商品名稱和價格的結構
      struct product {
          // 字串
          char name[9];
          // 整數
          int price;
      };
      // 結構體變數宣告和初始化
      struct product my_product = {"MyProdct", 200};
      printf("%s", my_product.name);
    }
    
  • while 迴圈:
    while 條件判斷:
      重複執行程式區塊
    






你可能感興趣的文章

Object Recognition Kitchen 透明物體辨識(演算法概念)

Object Recognition Kitchen 透明物體辨識(演算法概念)

名稱加密

名稱加密

Day01:從變數看 bytecode

Day01:從變數看 bytecode






留言討論