ผลที่ได้จากการทำงาน
ขั้นตอนการทำงาน
1.นำข้อมูลที่อ่านได้มาคำนวณโดยเราจะใช้ใน ส่วนของ หน่วยกิต และ เกรด มาใช้ในการคำนวณ
2.เราจะทำเกรดในรูปแบบของสัญลักษณ์(A B+ ... F) มาแปลงให้เป็นค่าของแต่ละเกรด เกรดที่อ่านได้มาเทียบกับ list ที่ใช้เก็บ เกรดที่เป็นรูปแบบสัญลักษณ์ และนำไปเทียบกับ list ของที่เก็บค่าที่เป็นตัวเลขของเกรดเอาไว้
["A", "B+", "B", "C+", "C", "D+", "D", "F"]
[4, 3.5, 3, 2.5, 2, 1.5, 1, 0]
เมื่อเทียบกันแล้วตรงกับ เกรดที่เป็นรูปแบบสัญลักษณ์ แล้วตรง ตรงกัน จากนั้นเราจะได้ index ของเกรดนั้น แล้วนำไปเลือกเกรดที่เป็นตัวเลข และดึงค่ามาใช้
3.จากนั้น นำเกรดไปคูณกับหน่วยกิต และเก็บค่าไว้ในตัวแปรที่เก็บค่า score จนกว่าจะดึงข้อมูลจากตารางเสร็จ ในขณะที่คูณค่า เราก็จะนำเก็บค่าหน่วยกิต(credits)จนครบ จากนั้นจึงนำ score ที่ได้ ไปหารกับหน่วยกิต จะได้ค่าของเกรดในเทอมนั้นออกมา และเก็บใส่ list ไว้
4.หน่วยกิตที่รวมได้จะถูกนำไปเก็บใส่ list อีกตัวเพื่อนำไปแสดงค่าทีหลัง
5.มีการเก็บหน่วยกิตที่ได้ในแต่ละเทอม คือหน่วยกิตของวิชาที่ผ่าน( วิชาที่ไม่ติด F ) และเก็บใน list
สิ่งที่ได้เรียนรู้
1.การใช้ method ในการปัดเศษ
Decimal(grade_sum/credits).quantize(Decimal('.01'), rounding=ROUND_DOWN)
quantize เป็น method ที่ใช้เพื่อที่จะกำหนดตำแหน่งในการเลือก จำนวน ตำแหน่งทศนิยม และสามารถ ปัดเศษขึ้น หรือลง ก็สามารถกำหนดได้ ถ้าอยากให้ปัดเศษขึ้นจะต้องใส่ ROUND_UP และถ้าอยากปัดเศษลง ให้ใช้ ROUND_DOWN
2.การอ่านไฟล์ csv
ปัญหาที่เจอ
เมื่อมีช่องว่างในข้อมูล มันจะอ่านช่องว่างมาด้วย แทนที่จะอ่านแค่ "C" มันจะอ่านเป็น "C " และทำให้ไม่ตรงกับ เงื่อนไขที่กำหนดไว้ ในตอนแรกจึงมีการผิดพลาด
ไม่มีความคิดเห็น:
แสดงความคิดเห็น