Python Tutorial – Count The Dogs

tutorial นี้เราจะมาสอนเขียน Python function ง่ายๆเพื่อใช้วิเคราะห์ข้อมูล โดย input คือ list of items ส่วน output จะออกมาเป็น dictionary (key คือชื่อ item และ value คือจำนวน item นั้นๆ)

สำหรับเพื่อนๆที่อยากทำตาม tutorial นี้ ต้องเข้าใจสองเรื่องนี้ก่อน

  • list vs. dictionary
  • control flow (if-else และ for loop)

ถ้าใครยังใหม่กับ Python ลองดูคอร์สฟรีของเราก่อนที่ https://datarockie.com/p/python-for-non-programmer

Count Animals

โจทย์คือเราต้องการนับจำนวน dog, cat, hippo ที่อยู่ใน list animals วิธีการที่เราจะแก้ปัญหาใน Python จะเริ่มจากการสร้าง empty dictionary ขึ้นมาก่อน (line 8)

ตั้งแต่ line 12-16 คือการเขียน for loop เพื่อนับ item ทีละตัวที่อยู่ใน animals ภายใน for loop เราเขียน if-else เพื่อเช็คชื่อ animal ตัวนั้นและอัพเดท key-value ใน result dictionary

if animal in result: คือเงื่อนไขที่เราใช้ตรวจสอบว่ามีชื่อ animal ตัวนั้นอยู่ใน result dictionary ของเราหรือยัง?

  • if True – เราจะอัพเดท result ด้วยโค้ด result[animal] += 1
  • if False – เราจะอัพเดท result ด้วยโค้ด result[animal] = 1

ทำไม if False เราถึงเขียน result[animal] = 1? เพราะ for loop รอบนั้นคือการเจอชื่อ animal ตัวนั้นเป็นครั้งแรก เราเลยอัพเดท result dictionary {key: value} ด้วย {ชื่อ animal: 1}

เมื่อ for loop วิ่งครบทุก item ที่อยู่ใน list animals แล้ว เราจะได้ result dictionary หน้าตาแบบนี้ {‘dog’:5, ‘cat’:3, ‘hippo’:1} ลอง print(result) ออกมาตรวจสอบความถูกต้องอีกครั้งหนึ่ง

Function

เราสามารถเขียน wrap โค้ดด้านบนเป็น function เพื่อนำไปใช้นับ items ใน list อื่นได้

ข้อดีของ function คือ reusable ใช้ซ้ำได้เรื่อยๆ ไม่ต้องเขียนโค้ดใหม่ให้เมื่อยมือ 😛

ใน Python เราสร้างฟังชั่นใช้เองง่ายๆด้วย def keyword บรรทัดสุดท้ายของฟังชั่นเราใช้ return keyword เพื่อ return ผลลัพธ์ที่ได้จากฟังชั่น ดูโค้ดตัวอย่างด้านล่าง

Testing

ลองทดสอบ count_item() กับ list อื่นๆ ว่ามันให้ผลลัพธ์อย่างที่เราต้องการหรือเปล่า

Well done !! ใน tutorial นี้เราเรียนวิธีการเขียนฟังชั่นๆง่าย เพื่อนับจำนวน items ใน list และ return ผลลัพธ์ในรูปแบบของ dictionary

One thought on “Python Tutorial – Count The Dogs

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.