Category Archives: programming

วิทย์ม.ต้น: รู้จัก Dictionary ใน Python, รู้จักใช้ pandas ดูดตารางข้อมูลบนเว็บ

วันนี้เด็กๆมัธยมต้นเรียนรู้เรื่อง dictionary ซื่งใช้เก็บข้อมูลแบบเป็น key/value และเราสามารถใช้ key ไปหา value ได้ เด็กๆเข้าไปอ่านและทดลองเขียนโค้ดที่ https://snakify.org/en/lessons/dictionaries_dicts/

จากนั้นเด็กๆก็ได้เห็นตัวอย่างการใช้ pandas ซึ่งเป็นเครื่องมือจัดการข้อมูลต่างๆได้ง่ายๆใน Python โดยวันนี้เด็กๆได้รู้จักใช้ pandas ดูดข้อมูลที่เป็นตารางบนเว็บต่างๆมาใช้งาน ยกตัวอย่างเช่นถ้าจะหาเมืองหลวงของประเทศต่างๆในโลกก็สามารถไปดึงข้อมูลมาจากวิกิพีเดียหน้านี้:

จากหน้า https://en.wikipedia.org/wiki/List_of_national_capitals

จะเห็นว่ามีตารางเมืองหลวงและประเทศต่างๆอยู่ เราสามารถเรียกใช้ pandas เอาข้อมูลในตารางมาแบบนี้

ตัวแปร tables จะเป็นลิสต์ที่เก็บข้อมูลตารางทั้งหลายในหน้า https://en.wikipedia.org/wiki/List_of_national_capitals ที่เราดูดมา เราสามารถดูว่าได้มากี่ตารางและดูเนื้อหาของตารางแต่ละอันด้วยคำสั่งพวก len(tables) และดู tables[0], tables[1], … เพื่อเลือกตารางที่เราต้องการ ในกรณีนี้ตารางรายชื่อเมืองหลวงอยู่ที่ tables[1] เราสามารถเรียกใช้ข้อมูลหรือบันทึกเก็บเป็นไฟล์ไว้ที่เครื่องเราก็ได้ เช่นถ้าเราต้องการบันทึกเป็นไฟล์ของ Excel เราก็สามารถใช้คำสั่ง to_excel( ) แบบนี้ก็ได้:

เราจะได้ไฟล์ capitals.xls ที่มีข้อมูลเมืองหลวงไว้ใช้ได้ เปิดขึ้นมาหน้าตาแบบนี้ครับ:


ผมแนะนำให้เด็กๆไปเรียนรู้เกี่ยวกับ pandas เพิ่มเติมที่สองลิงก์นี้ครับ:

Quick Tip: The easiest way to grab data out of a web page in Python: https://medium.com/…/quick-tip-the-easiest-way-to-grab-data…

Easier data analysis in Python with pandas (video series): https://www.dataschool.io/easier-data-analysis-with-pandas/

วิทย์ม.ต้น: หัดจัดเรียงข้อมูล (sorting) ด้วย Python, หาคำที่มีสระ aeiou ครบ, หา Anagrams

วันนี้เด็กๆม.ต้นหัดใช้คำสั่ง sorted(…), sorted(…, reverse = True), sorted(…, key = …) ใน Python เพื่อจัดเรียงข้อมูลเป็นลำดับต่างๆตามที่ต้องการครับ

มีแบบฝึกหัดให้เด็กๆพยายามแก้ปัญหาครับ มีให้หาคำภาษาอังกฤษที่มีสระครบห้าตัว a, e, i, o, u

มีแบบฝึกหัดให้หาคำภาษาอังกฤษที่มีสระครบห้าตัวและเรียงกันด้วย

และมีแบบฝึกหัดให้หา anagrams หรือคำที่มีตัวสะกดเป็นอักษรชุดเดียวกันเช่น bat กับ tab หรือ colonialist กับ oscillation

ท่านสามารถกดดู notebook นี้ได้ที่ http://nbviewer.jupyter.org/urls/witpoko.com/wp-content/uploads/2018/12/จัดเรียงข้อมูล_sorting.ipynb

หรือดาวน์โหลดไปเล่นเองได้จาก https://witpoko.com/wp-content/uploads/2018/12/จัดเรียงข้อมูล_sorting.ipynb (ถ้ากดแล้วไม่โหลดให้กดเมาส์ขวา Save As… หรือ Download linked file… นะครับ) ถ้าจะเล่นเองต้องมีไฟล์คำศัพท์ภาษาอังกฤษ เช่นถ้ามี macOS ไฟล์ก็จะอยู่ที่ /usr/share/dict/words ถ้าไม่มีก็สามารถไปหาได้ที่ https://github.com/dwyl/english-words/  หรือ http://wordlist.aspell.net/12dicts-readme/ เป็นต้นครับ

วิทย์ม.ต้น: หัดเขียนไฟล์ด้วย Python

วันนี้เด็กๆมัธยมต้นหัดใช้ Python เขียนไฟล์เก็บไว้บนคอมพิวเตอร์ครับ อันนี้สำคัญเพราะปกติเวลาเราทำงานอะไรบางอย่างเสร็จเราก็จะต้องการบันทึกงานของเราเก็บเอาไว้ เวลาปิดคอมพิวเตอร์ไปข้อมูลจะได้ยังอยู่


มีแบบฝึกหัดหา “คำ 100%” แล้วบันทึกผลลงในไฟล์กันครับ

พบคำตลกๆเยอะครับ ไม่เพียงแต่คำว่า “attitude”

ท่านสามารถกดดู notebook นี้ได้ที่ http://nbviewer.jupyter.org/urls/witpoko.com/wp-content/uploads/2018/12/หัดเขียนข้อมูลลงไฟล์.ipynb

หรือดาวน์โหลดไปเล่นเองได้จาก https://witpoko.com/wp-content/uploads/2018/12/หัดเขียนข้อมูลลงไฟล์.ipynb (ถ้ากดแล้วไม่โหลดให้กดเมาส์ขวา Save As… หรือ Download linked file… นะครับ) ถ้าจะเล่นเองต้องมีไฟล์คำศัพท์ภาษาอังกฤษ เช่นถ้ามี macOS ไฟล์ก็จะอยู่ที่ /usr/share/dict/words ถ้าไม่มีก็สามารถไปหาได้ที่ https://github.com/dwyl/english-words/  หรือ http://wordlist.aspell.net/12dicts-readme/ เป็นต้นครับ