🧮 Daily Python Problem: มาหาค่าเฉลี่ยกันเถอะ! 💖

วันนี้เรามาฝึกโจทย์ที่ใช้บ่อยมากๆ ในโลกของ Data กันค่ะ นั่นคือ Daily Python Problem: หาค่าเฉลี่ย (Calculate Average)!

โจทย์: ให้เราเขียนฟังก์ชันชื่อ calculate_average(numbers) ที่รับ List ของตัวเลขเข้ามา แล้ว return ค่าเฉลี่ยของตัวเลขทั้งหมดใน List นั้นๆ ค่ะ

⚠️ อย่าลืมจัดการ Edge Case น้า!

สิ่งที่สำคัญมากๆ คือ Edge Case หรือกรณีพิเศษค่ะ ถ้า Input เป็น List ว่างเปล่า [] แล้วเราพยายามหารด้วย 0 (จำนวนตัวเลข) โปรแกรมของเราจะ Error ทันที! 😱

• ข้อกำหนด: ถ้า List ว่าง ให้ return 0 (หรือจะ None ก็ได้แล้วแต่เรากำหนดค่ะ)

✨ มาดู 2 วิธีเด็ดๆ ในการเขียนกันค่ะ

1. แบบพื้นฐาน (เช็ค len ก่อน):

• เช็คก่อนว่า len(numbers) == 0 ไหม ถ้าใช่ก็ return 0

• ถ้าไม่ว่าง ก็ใช้ฟังก์ชัน sum() เพื่อหาผลรวม และ len() เพื่อหาจำนวน แล้วนำมาหารกันค่ะ

2. แบบ Pythonic (ใช้ if not numbers):

• วิธีนี้จะสั้นกว่าและเป็นที่นิยมใน Python เพราะ if not numbers: มีความหมายเหมือนกับการเช็คว่า if len(numbers) == 0: เลยค่ะ!

• ถ้า List ไม่ว่าง ก็คำนวณและ return ในบรรทัดเดียวเลย สั้นและสวยงามมาก!

ตัวอย่าง:

• Input: calculate_average([1, 2, 3, 4, 5])

• Output: 3.0

ลองเอาไปฝึกทำดูนะคะ การจัดการ Edge Case เป็นทักษะสำคัญที่นักพัฒนาที่ดีต้องมีเลยค่ะ! Keep going. 🥰

#data #python #ai #programmer #learnonlemon8

2025/11/11 แก้ไขเป็น

... อ่านเพิ่มเติมนอกจาก “หาค่าเฉลี่ยใน List” แล้ว เวลาเจอคำถามแนว ๆ ในงาน Data มักจะต่อยอดไปที่ “หาค่าเฉลี่ยหลายคอลัมน์ในตาราง” เช่นใน pandas DataFrame (หลายคนค้นหากับชุดข้อมูล mtcars บ่อยมาก) เลยขอเสริมวิธีคิด/ตัวอย่างที่ฉันใช้จริงให้ค่ะ เผื่อเอาไปประยุกต์กับโจทย์ apply() ได้เลย 1) หาค่าเฉลี่ยทุกคอลัมน์ใน DataFrame แบบตรงที่สุด ถ้าต้องการค่าเฉลี่ย “รายคอลัมน์” (เหมือนเอา calculate_average ไปใช้กับแต่ละคอลัมน์) ทำได้ง่ายมาก: - df.mean(numeric_only=True) อันนี้จะได้ Series ของค่าเฉลี่ยแต่ละคอลัมน์ และเลี่ยงคอลัมน์ที่ไม่ใช่ตัวเลขให้อัตโนมัติ 2) ใช้ apply() เพื่อฝึกแนวคิด (เหมือนทำฟังก์ชันเอง) ถ้าโจทย์ระบุให้ใช้ apply() เช่น “หาค่าเฉลี่ยของทุกคอลัมน์ใน mtcars ต้องเขียน apply() ยังไง” ฉันจะทำประมาณนี้: - df.apply(lambda col: col.mean(), axis=0) axis=0 คือทำงานทีละคอลัมน์ ผลลัพธ์เหมือน df.mean() 3) จัดการ Edge case แบบเดียวกับ List ว่าง (สำคัญมาก) ใน DataFrame ก็มีเคสคล้าย ๆ “List ว่าง” เช่นคอลัมน์มีแต่ค่าว่าง (NaN) หรือกรองข้อมูลแล้วไม่เหลือแถวเลย - ถ้าเป็น NaN: โดยปกติ mean() จะข้าม NaN ให้ แต่ถ้าทั้งคอลัมน์เป็น NaN ผลจะเป็น NaN - ถ้าอยากให้ fallback เป็น 0 แบบโจทย์ calculate_average ให้ใช้: df.apply(lambda col: 0 if col.dropna().empty else col.mean(), axis=0) แนวคิดเดียวกับ if not numbers: คือเช็ค “ว่างจริงไหม” ก่อนหาร 4) ตัวอย่างการประยุกต์กับคอลัมน์ที่ไม่ใช่ตัวเลข บางทีในตารางมีคอลัมน์ชื่อรุ่น/ประเภทปนมา ถ้าใช้ apply ตรง ๆ อาจ error ได้ ฉันจะเลือกเฉพาะ numeric ก่อน: - num_df = df.select_dtypes(include="number") - num_df.apply(lambda col: col.mean(), axis=0) 5) “Problem list” เขียนยังไงให้ชัด (เผื่อทำโน้ต/โพสต์/การบ้าน) เวลาฉันทำโจทย์แนว Daily Python Problem จะเขียนเป็น problem list สั้น ๆ แบบนี้เพื่อกันหลุดประเด็น: - Input คืออะไร (List ตัวเลข / DataFrame) - Output ต้องเป็นอะไร (ค่าเฉลี่ย float) - Constraints/Edge case (ลิสต์ว่าง return 0, คอลัมน์ว่าง/NaN ทำยังไง) - วิธีแก้ (ใช้ sum() + len(), หรือ mean(), หรือ apply()) - ตัวอย่างทดสอบ (เช่น [1,2,3,4,5] -> 3.0, [10,20] -> 15.0) ถ้าทำ 2 สเต็ปนี้จนคล่อง (เช็คว่าง + คำนวณแบบสั้น) จะต่อยอดจาก List ไป DataFrame ได้ไวมาก และลดบั๊กเรื่องหารศูนย์/ข้อมูลหายได้เยอะจริง ๆ ค่ะ

ค้นหา ·
เรียน python

โพสต์ที่เกี่ยวข้อง

คิดราคาเดลิเวอรี่ยังไงให้ไม่เจ๊งงง พร้อมทริคคิดค่าแรงต่อวัน
มาๆๆๆๆ ดูยอดขาย + วิธีคิดราคากันค่า อันนี้สำหรับ แอพ Grap นะคะ #ติดเทรนด์ #ขายอาหารไม่มีหน้าร้าน #เดลิเวอรี่ไม่มีหน้าร้าน #ขายเดลิเวอร์รี่ #ขายของในคอนโด
พริมมีร้านคาเฟ่ของตัวเองแล้วนะ

พริมมีร้านคาเฟ่ของตัวเองแล้วนะ

ถูกใจ 1077 ครั้ง

ภาพแสดงโจทย์ Python ประจำวันเกี่ยวกับการนับจำนวนสระ (a, e, i, o, u) ในสตริง โดยฟังก์ชัน `count_vowels` ต้องนับทั้งตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ พร้อมระบุข้อกำหนดและงานที่ต้องทำ
ภาพแสดงตัวอย่างการใช้งานฟังก์ชัน `count_vowels` พร้อมอินพุตและเอาต์พุตที่คาดหวัง เช่น "Hello World" ได้ 3 สระ และ "Python Programming" ได้ 5 สระ เพื่ออธิบายโจทย์ให้ชัดเจนยิ่งขึ้น
ภาพแสดงเฉลยโค้ด Python สำหรับฟังก์ชัน `count_vowels` ที่ใช้การแปลงสตริงเป็นตัวพิมพ์เล็กทั้งหมด (`.lower()`) และวนลูปเพื่อตรวจสอบว่าแต่ละตัวอักษรเป็นสระหรือไม่ ก่อนจะคืนค่าจำนวนสระที่นับได้
🐍 Daily Python Problem: มาฝึกเขียนโค้ดกันเถอะ ✨
วันนี้มาทำโจทย์พื้นฐานที่น่าสนใจและได้ใช้บ่อยๆ ใน Python ค่ะ: "การนับจำนวนสระ (Vowels: a, e, i, o, u) ใน String" 📝 โจทย์ (Problem & Task): เขียนฟังก์ชันชื่อ count_vowels(text) ที่รับพารามิเตอร์เป็น String และต้องนับจำนวนสระทั้งหมดที่อยู่ใน String นั้น โดยต้องนับรวมทั้ง ตัวพิมพ์เล็กและ
เดฟ

เดฟ

ถูกใจ 5 ครั้ง

ภาพแสดงกราฟ SGOV iShares 0-3 Month Treasury Bond ETF ที่ให้ผลตอบแทนประมาณ 4.00% ต่อปี พร้อมข้อความกระตุ้นให้ย้ายเงินจากบัญชีออมทรัพย์ไป SGOV เพราะดอกเบี้ยออมทรัพย์ช้าเกินไปและ SGOV ปลอดภัยกว่า
ภาพเต่าคลานช้าๆ บนกราฟ แสดงดอกเบี้ยออมทรัพย์เฉลี่ยเพียง 0.25-1% ต่อปี ซึ่งโตช้ามากและด้อยค่าจากเงินเฟ้อ ทำให้เสียโอกาสในการลงทุน
ภาพอธิบาย SGOV คืออะไร โดยเป็นกองทุนตราสารหนี้สหรัฐฯ อายุสั้น ความเสี่ยงต่ำมาก ให้ผลตอบแทนเฉลี่ย 4-5% ต่อปี (ปัจจุบัน 4.21%) และมีสภาพคล่องสูง ซื้อ-ขายได้ทุกวัน
ดอกเบี้ยออมทรัพย์ = ช้าเกินไป! ย้ายไป SGOV เถอะ
ดอกเบี้ยออมทรัพย์มัน “ช้าเกินไป” เมี๊ยว… เก็บเงินทั้งปี ได้ดอกเบี้ยไม่กี่สิบบาท แล้วจะรวยตอนไหน 😿 ตอนนี้หลายคนเริ่มย้าย “เงินเย็น” ไปไว้ใน SGOV กันแล้ว เพราะ… ✨ SGOV ปลอดภัยกว่าออมทรัพย์หลายเจ้า (ลงทุนในพันธบัตรรัฐบาลสหรัฐ อายุสั้นมาก) ✨ ผลตอบแทนเฉลี่ย 4–5% ต่อปี สูงกว่าเงินฝากหลายเท่า ✨ ซ
คุณยายเหมียวววว

คุณยายเหมียวววว

ถูกใจ 13 ครั้ง

40++ เล่นเกมทดสอบสมองของ สสส. กันเถอะ
เข้าลิงก์นี้เลย 👉 smartbefore40.com #สสส #สูงวัยให้พร้อมต้องเตรียมก่อน40 #เกมส์ฝึกสมอง #ติดเทรนด์ #ป้ายยากับlemon8
Varn Rums

Varn Rums

ถูกใจ 2 ครั้ง

ภาพการ์ตูนเด็กผู้หญิงในชุดนักเรียนยืนอยู่หน้าแผงเซิร์ฟเวอร์และโค้ดไบนารี พร้อมวงจร DevOps และไอคอนเทคโนโลยีต่างๆ มีข้อความว่า "DevOps Engineer เก่งจริง รู้จริง ต้องศึกษาอะไร เงินเดือนเท่าไหร่"
ภาพการ์ตูนเด็กผู้หญิงในชุดนักเรียนยืนอยู่หน้าแผงเซิร์ฟเวอร์และโค้ดไบนารี พร้อมไอคอนเทคโนโลยีและข้อคว��ามเน้นทักษะที่จำเป็น: "Linux & Scripting", "Cloud & Infrastructure (IaC)", "Containers", "CI/CD"
ภาพการ์ตูนเด็กผู้หญิงในชุดนักเรียนยืนอยู่หน้าแผงเซิร์ฟเวอร์และโค้ดไบนารี พร้อมภาพประกอบแนวคิด "Problem Solving", "Automation Mindset" และ "Communication" ที่สำคัญสำหรับ DevOps Engineer
DevOps Engineer เก่งจริง รู้จริง ต้องรู้อะไร ?
👨‍💻 เจาะลึกอาชีพ DevOps Engineer: ทำหน้าที่อะไร ทำไมเงินเดือนสูงลิ่ว? อยากอัปเกรดค่าตัวให้พุ่ง? สายงาน DevOps คือคำตอบ! เพราะนี่คืออาชีพที่เป็น "หัวใจ" ของบริษัท Tech ยุคใหม่ ที่ต้องส่งมอบซอฟต์แวร์ให้เร็วและเสถียรที่สุด มาดู 3 สิ่งที่ต้องรู้ถ้าอยากเป็นตัวจริงในสายนี้! 🚀 🛠️ 1. DevOps Engi
TechTalk by Taa

TechTalk by Taa

ถูกใจ 5 ครั้ง

อ่านเถอะมันได้อะไรกลับมาแน่นอน
10 ข้อคิดจากหนังสือ “ชีวิตเรามีแค่สี่พันสัปดาห์” 1. เวลาชีวิตสั้นกว่าที่คิด หากมีอายุเฉลี่ย 80 ปี เราจะมีเวลาเพียงประมาณ 4,000 สัปดาห์เท่านั้น เวลาจึงเป็นทรัพยากรที่มีค่าที่สุด และมีจำกัดกว่าที่เรามักจินตนาการ 2. ทุกอย่างต้องใช้เวลาเท่าที่มันต้องใช้ บางเรื่องไม่สามารถเร่งให้เร
Chilaty

Chilaty

ถูกใจ 36 ครั้ง

พื้นฐาน python ก่อนใช้Ai เขียนcode ให้
#พื้นฐานการเขียนเว็ปไซต์ #pythonprogramming #pythonlearning #ติดเทรนด์ #python การใช้ AI อย่าง Gemini ช่วยเขียนโปรแกรมเป็นทางเลือกที่ฉลาดมากครับ แต่เพื่อให้คุณ "คุย" กับมันรู้เรื่อง และสามารถนำ Code ที่ได้ไปปรับแก้หรือไล่เช็คข้อผิดพลาด (Debug) ได้เอง คุณควรมีพื้นฐาน 5 เรื่องหลัก
ขีดเขียน

ขีดเขียน

ถูกใจ 5 ครั้ง

ดูเพิ่มเติม