iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 19
0
自我挑戰組

在資訊宅中打滾的通訊系生系列 第 19

Day-19 Python2基本語法

前言

我自己因為課程的關係式在Udemy上面學習Python的,不管你在哪裡學習,只要找到自己的喜歡的方式就是好的學習方法,今天來講講關於Python2的基本語法教學:)

Python2 基礎語法教學

1. 印出Shell指定的字

import sys
print sys.argv[1]

2. 使人輸入然後顯示

print raw_input("Please enter the string you want to be printed out: ")

3. 查詢python模組使用方式&所包含函式

  1. help使用方式(需下載過此函式-import 成功)
    • 退出按Q
  1. dir查詢此模組所包含之函式(模組.函式 ex: sys.argv )

4. 變數

1. 命名條件

  1. 可使用英文、底線做開頭
  2. 不需要宣告
  3. 不能使用數字開頭
  4. 大小寫英文為不同(Va va)
  5. 特殊函式符號不能為變數名稱(for、if...)

2. 變數予值

3. 查詢變數存放位址 id() ex:id(變數名稱)

5. 資料型別

  • 檢查資料型別 type() ex:type(變數名稱)

1. strings 字串

  • 基本宣告-單引號跟雙引號相同
  • 多行輸入
    • 使用""" 缺點為有換行(\n)符號

    • 使用""" 輸入後加上\ 再換行

    • 索引

      • 藉由[]填入數字索引(可由左至右 正值 或 右至左 負值)

        變數名稱[索引數字]
        
      • 查詢字串長度 len() ex:len(字串變數名稱)

      • 超過長度 - 噴錯誤訊息() string index out of range

    • 索引函式

      1. 查詢字元在字串中的索引值(只會顯示第一個)
        • index()
        變數名稱.index("查詢之字元")
        
      1. 查詢字元次數
        • count()
        變數名稱.count("查詢之字元")
        
      1. 查詢字串在字串中第一個字元的索引值
        • find()
        變數名稱.find("查詢之字串")
        * 找不到則回傳-1
        
    • "顯示"字串為全大寫或全小寫

      • 無法改變原本字串
        變數名稱.upper() -->全顯示為大寫英文
        變數名稱.lower() -->全顯示為小寫英文
        
    • 判斷開頭字元與結尾字元

      變數名稱.startswith("是否開頭字元")
      變數名稱.endswith("是否結尾字元")
      是 回傳 True
      否 回傳 False
      
    • "顯示"清除開頭結尾重複字元 strip()

      • 無法改變原本字串
        變數名稱.strip() -->消除開頭與結尾空白
        變數名稱.strip("指定字元") -->消除開頭與結尾指定字元
        
    • "顯示"替換字串中的字元 replace()

      • 無法改變原本字串
        變數名稱.replace("舊字串","新字串")
        
    • 將字串變為獨立元素(切割字串)

      • 無法改變原本字串
        變數名稱.split("根據字元")
        
    • 於字串中平均插入指令字元

      • 無法改變原本字串
        "指定字元".join(變數名稱)
        
    • 字元相加

      a='a字串'
      b='b字串'
      a+b
          ```
      - ![](https://i.imgur.com/tBjlwRz.png)
      
    • 查看字元是否在字串中

      a = '字串'
      '字元' in a  --> 字元 是否在字串a中有出現
      '字元' not in a --> 字元 是否沒有在字串a中出現
      
      正確回傳 true 錯誤回傳 false
          ```
      - ![](https://i.imgur.com/42u7OxI.png)
      
    • 將指定字串或數字用 %s %d 填入

      'aaaaaa %s bbbbb %d' % ("字串",數字)
      
    • 切割字串

      str = '字串'
      str[:] -->顯示整個字串
      str[5:14] -->取字串中第 5~13 個字元(從0開始)
      str[:15]  -->取字串中第 0~14 個字元(**注意不包括15)
      str[-9:-1] -->取字串中倒數第 9~2 個字元(**注意不包括最後一個(-1))
      str[-9:] -->取字串中倒數第 9~1 個字元
      str[::2] -->只取字串中第2的倍數個顯示
      str[::3] -->只取字串中第3的倍數個顯示
      
    • 字串翻轉

      str=''
      str[::-1]
      

2. numbers 數值

  • 數值型態

    1. int 整數
    2. long 長整數 -->較長的整數自動轉為長整數
    3. float 浮點數
    4. bool 布林數
    5. complex 複數(a+jb)
  • 查看數值型態 type(數字)

    type(數字)
    
  • 轉換型態

    int(數字)
    float(數字)
    bool(數字)
    complex(數字)
    
  • 加減乘除

    數字+數字
    數字-數字
    數字*數字
    數字/數字 (當兩數字都是int時,結果會省略到最接近的整數)
    * 2 = int 
    * 2. = float
    
  • 餘數(mod)

    數字%數字
    
  • 多次方 ** & pow(,)

    a數字**b數字 -->a的b次方
    pow(a數字,b數字) -->a的b次方
    
    ** = pow
    
  • 比較

    • 、<、<=、>=、==、!=

      • 正確回傳 true 錯誤回傳 false
  • 優先權

  • 絕對值 abs()

    abs(負值)
    return 正值
    
  • 比較兩數值 max() min()

    max(數字1,數字2)    -->return 較大的數字
    min(數字1,數字2)    -->return 較小的數字  **字串>數字**
    

3. booleans 布林數

  • 常使用於比較

    • true 為真,1
    • false 為假,0

    注意 大寫英文 != 小寫英文

  • 檢測布林值的函數 bool()

    bool(式子)
    真回傳 true 假回傳 false
    
  • 邏輯運算符 and、or、not

    (1==1) and (1==1) -->左右兩式"皆"為真,回傳true
    (1==1) or (1==1) -->左右兩式"其一"為真,回傳true
    not(1==1) -->式子中為false則回傳true
    
  • python必為false(假)

    • 除了以下情況 其他皆為真
      1. 0
      2. 0L
      3. 0j
      4. none
      5. 0.0
      6. 空字串
      7. 空陣列
      8. 空字典
      9. 空字元

4. lists 陣列

  • 空陣列

    陣列名稱=[]
    
  • 查看陣列個數 len()

    len(陣列名稱)
    
  • 索引陣列中的目標元素

    陣列名稱=[1,2,3,4,5,6]
    陣列名稱[1] -->回傳2
    陣列名稱[-1] -->回傳6
    
  • 修改陣列中其中一個元素

    陣列名稱=[1,2,3,4,5,6]
    陣列名稱[1]='改變後的元素'
    
  • 比較陣列中元素 最大值 max() 最小值 min()

  • 新增/刪除 陣列中的元素 append del pop remove

    陣列名稱.append(加入值)
    陣列名稱.insert(加入於第幾個,加入的元素)
    del 陣列名稱[第幾個] -->刪除
    陣列名稱.pop(第幾個) -->刪除
    陣列名稱.remove(元素名稱) -->刪除
    
  • 陣列相加 extend()

    陣列名稱1+陣列名稱2
    陣列名稱1.extend(陣列名稱2) -->將陣列2在陣列1之
    
  • 元素索引 index()

    陣列名稱.index(元素名稱)
    
  • 元素在陣列出現次數 count()

    陣列名稱.count(元素名稱)
    
  • 陣列中的元素進行排列 sort reverse

    陣列名稱.sort() -->升冪
    陣列名稱.reverse() -->降冪
    
  • 陣列中的元素進行排列不改變原陣列 sorted()

    sorted(陣列名稱)
    sorted(陣列名稱, reverse = true)
    
  • 多個陣列元素

    陣列名稱*數量
    
  • 切割陣列

    • 與切割字串相同
    list = [元素1,元素2,元素3,元素4...]
    list[:] -->顯示整個陣列
    list[5:14] -->取陣列中第 5~13 個元素(從0開始)
    list[:15]  -->取陣列中第 0~14 個元素(**注意不包括15)
    list[-9:-1] -->取陣列中倒數第 9~2 個元素(**注意不包括最後一個(-1))
    list[-9:] -->取陣列中倒數第 9~1 個元素
    list[::2] -->只取陣列中第2的倍數個顯示
    list[::-1] -->顯示陣列元素倒反
    

5. set 集合

  • 集合內為 無重複相同元素 的陣列 set

    • 需python 2.7後
      第一種宣告
          陣列名稱 = [元素1,元素2,...]
          集合名稱 = set(陣列名稱)
      
      第二種宣告
          集合名稱 = {元素1,元素2,...} -->會自動將重複元素去掉
      
  • 顯示集合中元素個數 len()

    • 去掉重複元素後的個數
      len(集合名稱)
      
  • 查詢是否存在於集合

    元素 in 集合名稱 -->存在回傳true
    元素 not im 集合名稱  -->不存在回傳true         
    
  • 新增元素 add()

    • 若加入的元素為重複的,則不噴錯但也無效
    集合名稱.add(欲加入之元素)
    
  • 比對兩集合重複元素 intersection()

    set1={}
    set2={}
    set1.intersection(set2)
    set2.intersection(set1)
    
  • 比較兩集合不相同的元素 difference()

    set1={}
    set2={}
    set1.difference(set2)
    set2.difference(set1)
    
  • 兩集合相加(去掉重複的) union()

    set1={}
    set2={}
    set1.union(set2)
    set2.union(set1)
    
  • 刪掉元素 pop()

    集合名稱.pop(元素索引)
    

上一篇
Day-18 伺服器筆記篇-Apache
下一篇
Day-20 Python2基本語法 -2
系列文
在資訊宅中打滾的通訊系生30

尚未有邦友留言

立即登入留言