北商資管Python課程
  • 北商資管Python課程
  • 一. 安裝軟體
    • 1. 安裝Python
    • 2. 安裝Visual Studio Code
    • 3. 設定Visual Studio Code
  • 二. 基本資料型態
    • 1. 整數, int
      • 1-1 以變數儲存整數
      • 1-2 算術運算
      • 1-3 運算子的運算優先順序
      • 1-4 邏輯運算
      • 1-5 命名變數
      • 1-6 鍵盤輸入
      • 1-7 格式化輸出
    • 2. 浮點數, float
      • 2-1 使用浮點數
      • 2-2 浮點數的精準度
      • 2-3 算術運算
      • 2-4 取出浮點數的整數部分
      • 2-5 無條件進位及無條件捨去
      • 2-6 四捨五入
      • 2-7 浮點數的格式化輸出
    • 3. 布林, bool
      • 3-1 設定布林值
      • 3-2 邏輯運算式
      • 3-3 邏輯式評估的短路迴圈
    • 4. 字串, str
      • 4-1 設定字串變數
      • 4-2 字串的加法及乘法
      • 4-3 去除字串的前後空白及計算字串長度
      • 4-4 字串轉整數/浮點數
      • 4-5 鍵盤輸入字串值
      • 4-6 格式化輸出
      • 4-7 判斷字串中是否存在某個字
      • 4-8 使用索引運算子
      • 4-9 字串內容轉大寫/小寫
    • 5. 元組, tuple
      • 5-1 設定tuple變數
      • 5-2 取用部分tuple內容
      • 5-3 配合in與not in的使用
      • 5-4 逐一取出tuple內容
      • 5-5 僅有1個元素的tuple
      • 5-6 將tuple轉成list
    • 6. 清單, list
      • 6-1 設定清單變數
      • 6-2 取出部份清單變數
      • 6-3 清單內容個數及加總
      • 6-4 清單的index()及count()方法
      • 6-5 清單的排序
      • 6-6 清單的-1指標值
      • 6-7 清單的del及append()
      • 6-8 清單的pop()及insert()
      • 6-9 配合in與not in的使用
      • 6-10 list comprehension
    • 7. 集合, set
      • 7-1 設定集合變數
      • 7-2 add()及remove()
      • 8-2 增加及刪除字典內容
      • 7-4 配合in與not in的使用
      • 7-5 聯集和交集
      • 7-6 差集和對稱差集
    • 8. 字典, dict
      • 8-1 設定字典及取出值
      • 8-2 新增及刪除字典內容
      • 8-3 依照值排序
      • 8-4 累計人數
  • 三. 邏輯設計
    • 1. if條件式
      • (1) not, and, or
      • (2) 只有一個if
      • (3) if與else
      • (4) if內又有if
      • (5) if...elif
    • 2. while迴圈
      • (1) 重覆的改變數值
      • (2) 條件成立才離開迴圈
    • 3. for迴圈
      • (1) 逐一取出字串內容
      • (2) 逐一取出清單內容
      • (3) 使用雙層迴圈
  • 四. 處理檔案
    • 1. list資料
    • 2. CSV資料
    • 3. txt資料
  • 五. 練習
    • 1. 設定初值的計算
    • 2. 由鍵盤輸入值
    • 3. 處理輸入值的錯誤
    • 4. 判斷是否有折扣
    • 5. 判斷何種折扣
    • 6. 判斷字串內容
    • 7. 判斷字串不等於, 而且, 或者
    • 8. 判斷各科成績是否及格
    • 9. 判斷平均成績是否及格
    • 10. 判斷數值的區段
    • 11. 計算不同商品代號的總金額
    • 12. 不同商品代號內的折扣條件
    • 13. 判斷多個資料的折扣
    • 14. 判斷多組資料的折扣
    • 15. 讀入list內容
    • 16. 判斷多組不連續資料
    • 17. 期中考練習(大學部)
    • 18. 期中考練習(五專部)
    • 19. 期中考(大學部)
    • 20. 期中考(五專部)
    • 21. 期中考
    • 22. 讀ntub.csv
    • 23. 讀ntub.csv並計算
    • 24. 讀ntub.csv並篩選
    • 25. 讀ntub.csv並統計
    • 26. 篩選iris.csv以產生輸出檔
    • 27. 統計iris.csv並印出
    • 28. 篩選 StudentsPerformance.csv
    • 29. 統計 StudentsPerformance.csv
    • 30. 用dict統計 StudentsPerformance.csv
    • 31. 篩選card.csv以產生輸出檔
    • 32. 分割字串以篩選card.csv
    • 33. 計算card.csv成績
    • 34. 輸出card.csv成績表
    • 35 統計card.csv的人數
    • 33. 輸出樂透對獎結果
    • 37. 統計樂透投注號碼
    • 38. 分析樂透投注號碼
    • 39. 分析蛋糕購買品項
    • 40. 分析各品項蛋糕購買數量
    • 41. 分析蛋糕購買數量
    • 42. 分析蛋糕購買金額
    • 43. 計算電信費
    • 44. 統計鐵達尼號乘客
    • 45. 統計鐵達尼號乘客 - set應用
    • 46. 蔡英文總統就職演說
    • 47. 期末考練習-1
    • 48. 期末考練習-2
    • 49. 期末考練習-3
    • 50. 期末考練習-4
  • 六. 使用ChatGPT
    • 1. 可讀性檢查
    • 2. 指令解釋
    • 3. AI問問題
Powered by GitBook
On this page

Was this helpful?

  1. 六. 使用ChatGPT

1. 可讀性檢查

請以Python專家的立場, 依據以下規則檢查我的程式, 並以繁體中文回覆檢查結果.

檢查規則如下:
1. 每層的內縮是否使用4格空白
2. 變數的命名是否容易讓閱讀者理解其意義
3. 程式中是否有註解段落的意義
   不良範例:
    amount=100
       
    if area in ('A', 'D', 'K', 'M'):
        price=800
    elif area  in ('B', 'C', 'L', 'N'):
        price=600
    else:
        price=500

    total=price*amount

    print(f'總金額={total:,}元')    
    
   在這個程式範例中, 在段落前都沒有加註註解, 不利於程式的解讀.
    
   良好範例:
    #設定數量的初值
    amount=100
    
    #判斷不同區域的單價   
    if area  in ('A', 'D', 'K', 'M'):
        price=800
    elif area  in ('B', 'C', 'L', 'N'):
        price=600
    else:
        price=500

    #計算總金額
    total=price*amount
    
    #輸出總金額
    print(f'總金額={total:,}元')    

4. 如果if敘述中存在由3個(含)以上的or或and組成的邏輯表示式, 可考慮用in或not in指令取代
   不良範例1:
   if area=='A' or area=='C' or area=='D' or area=='F' or area=='H' or area=='K' or area=='M' or area=='R':
       total*=0.8   

   不良範例2:
   if not (area=='A' and area=='C' and area=='D' and area=='F' and area=='H' and area=='K' and area=='M' and area=='R'):
       total*=0.8   
       
   在以上的範例中,if條件式存在多個由or及and連結的條件式, 程式不易維護, 可考慮改成:
   
   良好範例1:
   if area in ('A', 'C', 'D', 'F', 'H', 'K', 'M', 'R'):
       total*=0.8  
       
   良好範例2:
   if area not in ('A', 'C', 'D', 'F', 'H', 'K', 'M', 'R'):
       total*=0.8      
                        
5. 如果程式中存在多個if敘述, 且每個if的條件式都使用了3個(含)以上的相同變數進行判斷, 應改用if...elif...的條件分支架構.
   不良範例:
   if gender=='M' and salary>=100000 and saving>=1000000:
       group='M1'
       
   if gender=='M' and salary>100000 and saving<1000000:
       group='M2'  
       
   if gender=='M' and salary<100000 and saving>=1000000:
       group='M3'   
       
   if gender=='M' and salary<100000 and saving<1000000:
       group='M4'        
       
   if gender=='F' and salary>=80000 and saving>=800000:
       group='F1'
       
   if gender=='F' and salary>80000 and saving<800000:
       group='F2'  
       
   if gender=='F' and salary<80000 and saving>=800000:
       group='F3'   
       
   if gender=='F' and salary<80000 and saving<800000:
       group='F4'         
   
   在這個範例中, 用來作為判斷條件的值(如M, F, 100000, 1000000, 80000, 800000)重覆出現多次,
   不利於維護, 應該將程式改成:
   
   良好範例:
   if gender=='M':
       if salary>=100000:
           if saving>=1000000:
               group='M1'
           else:
               group='M2'
       else:
           if saving>=1000000:
               group='M3'
           else:
               group='M4'  
   elif gender=='F':
       if salary>=80000:
           if saving>=800000:
               group='F1'
           else:
               group='F2'
       else:
           if saving>=800000:
               group='F3'
           else:
               group='F4' 

6. 程式中的elif條件式在不影響邏輯意義的情況下, 應該去除可省略的邊界限定. 舉例:
   
   不良範例:
   if 3000 <= total:
       total*=0.8
   elif 2000 <= total < 3000:
       total*=0.85    
   elif 1000 <= total < 2000:
       total*=0.9
   else:
       total*=0.95
       
   在這個範例中, elif條件中的邊界限定3000和2000是可以省略的,
   因為已經在前一個條件中確保了total的上限, 因此, 程式的elif條件可以簡化為:
          
   良好範例:
   if 3000 <= total :
       total*=0.8
   elif 2000 <= total :
       total*=0.85      
   elif 1000 <= total :
       total*=0.9
   else:
       total*=0.95    
       
檢查後, 請依以下方式回應:
第1項至第3項檢查項目:
如果程式符合規定, 該項目顯示"符合規定", 
否則顯示"不符合規定"並說明不符合規定的原因.
 
第4項至第6項檢查項目:
如果程式未使用某項目的檢查句型, 該項目顯示"未使用".
如果程式沒有違反某項目的規定, 該項目顯示"符合規定". 
如果程式違反某項目的規定, 說明發生錯誤的原因, 並且提供修改後的程式.


待檢查程式如下:

                
Previous50. 期末考練習-4Next2. 指令解釋

Last updated 8 months ago

Was this helpful?