- what you have done/learned
- โหลดข้อมูลผลการเรียนจาก Spreadsheet ของงานที่แล้วในรูปแบบไฟล์ CSV
- ทำการเขียนโค้ด โดยดึงค่าจากไฟล์ CSV มาคำนวณ
- รูปแบบจากไฟล์ CSV ที่ใช้กับโค้ดนี้ได้
- Row แรกจะต้องเป็นหัวข้อ จะใช้คำว่าอะไรก็ได้แต่การจัดเรียงต้องเป็นดังข้อถัดไป
- Column แรกจะเป็นอะไรก็ได้ แต่ต้องไม่เว้นว่างไว้ (ชื่อวิชาดู เหมือนจะเป็นข้อมูลที่เหมาะสมที่สุด)
- Column ที่สองต้องเป็น หน่วยกิตของวิชา และ Column ที่สามต้องเป็น เกรดของวิชานั้นๆ ตัวอักษรพิมพ์ใหญ่
- จะมีเพิ่มอีกกี่ Column ก็ได้ แต่ 3 Column ต้องเป็นไปตามที่กำหนดไว้
- ในแต่ละเทอมต้องมี Row ว่างปิดท้าย เพื่อบอกว่าเกรดของเทอมนั้นๆสิ้นสุดที่จุดนี้
- ได้เรียนรู้ว่า Python ไม่มี Switch Case
- ใช้ GIT PUSH ขึ้น GITHUB (ลิงค์อยู่ใน reference)
- any problem/solution
ปัญหา
เกิดการ Error ไม่สามารถ decode ได้ เนื่องจากหัวข้อเป็นภาษาไทย
วิธีแก้
เพิ่ม encoding='utf-8' เข้าไปในฟังก์ชั่น open
open('MyGrade.csv', encoding='utf-8')
ปัญหา
จะใช้ Switch Case ในการแปลงเกรดจากตัวอักษรให้เป็นตัวเลข แต่พบว่าในภาษา Python นั้นไม่มี Switch Case
วิธีแก้
ค้นหาข้อมูลจนเจอว่า ให้ใช้ Dictionary แทน โดยทำเป็น method รับค่า argument เข้ามาทำเช็คว่าตรงกับ key ใดแล้วจึง return value ของ key นั้นกลับไป และใส่ .get(x,defualt_value) เผื่อไว้ในกรณีที่ไม่ตรงกับ key ที่กำหนดไว้เลย
- decision
เลือกใช้ภาษา Python เพราะว่าเคยใช้งานกับไฟล์ CSV ตอนที่เรียนวิชา Building Software II มาก่อนแล้ว
- reference
My Code on GITHUB : https://github.com/ginzlennontk/gpa_cal
CSV python reference : https://docs.python.org/3/library/csv.html
Replacements for switch statement in Python?
: https://stackoverflow.com/questions/60208/replacements-for-switch-statement-in-python
CSV python reference : https://docs.python.org/3/library/csv.html
Replacements for switch statement in Python?
: https://stackoverflow.com/questions/60208/replacements-for-switch-statement-in-python


