บทนำ#

พรสวรรค์ของมนุษย์คือภาษา ภาษาเป็นเครื่องมือที่ทำให้มนุษย์สื่อสาร และแสดงออกความคิดที่ความซับซ้อนออกมาได้อย่างไม่มีที่สิ้นสุด การสื่อสารก่อให้เกิดการร่วมมือกันของสังคมทั้งด้านวิทยาศาสตร์ สังคม วัฒนธรรม ซึ่งเป็นปัจจัยที่สำคัญที่สุดปัจจัยหนึ่งที่ขับเคลื่อนให้มนุษยชาติพัฒนาต่อไปข้างหน้า จนมาถึงปัจจุบันนี้มนุษย์พัฒนาภาษาคอมพิวเตอร์ขึ้นเพื่อใช้สื่อสารกับคอมพิวเตอร์ซึ่งมีความสามารถเหนือมนุษย์ในการคำนวณทั้งในด้านความเร็ว และในด้านความแม่นยำ นักเขียนโปรแกรมเป็นผู้อยู่เบื้องหลังที่ใช้ภาษาคอมพิวเตอร์ในการติดต่อสื่อสารกับคอมพิวเตอร์ สั่งให้ทำงานต่าง ๆ แทนมนุษย์ได้หลายอย่าง เช่น ส่งข้อความหากันผ่านมือถือ ค้นคว้าหาข้อมูลจากแหล่งข้อมูลขนาดมหาศาล หรือแปลภาษาที่ไม่รู้จัก ภาษาคอมพิวเตอร์อยู่ในชีวิตประจำวันของเราจนเราไม่สามารถจินตนาการได้อีกแล้วว่า ถ้าหากวันหนึ่งเราไม่มีโปรแกรมที่เหล่านี้แล้วชีวิตจะดำเนินต่อไปได้อย่างไร การเขียนโปรแกรมจึงนับเป็นทักษะที่สำคัญที่สุดทักษะหนึ่งในปัจจุบันนี้ เป็นทักษะที่ทำให้เราสามารถติดต่อสื่อสาร และสั่งให้เครื่องคอมพิวเตอร์คำนวณและประมวลผลข้อมูลให้เราได้

ผู้เขียนเป็นคนหนึ่งที่เรียนรู้การเขียนโปรแกรมเมื่อเรียนอยู่ในระดับมหาวิทยาลัยแล้ว และไม่ได้เป็นผู้ที่มีพื้นฐานทางคณิตศาสตร์และวิทยาศาสตร์เกินระดับมัธยมศึกษาตอนต้นไปเท่าใดนัก คนทั่วไปมักจะคิดว่าการเขียนโปรแกรมจำเป็นต้องมีพื้นฐานทางด้านคณิตศาสตร์และวิทยาศาสตร์ที่ดี ผู้เขียนจึงเกิดความกลัวว่าจะสามารถเรียนได้สำเร็จหรือไม่ แต่ที่จริงแล้วแก่นสำคัญของการเขียนโปรแกรม คือ การคิดแบบเป็นระบบระเบียบเป็นขั้นตอน เห็นโจทย์แล้วแยกแยะได้ว่าจะต้องมีขั้นตอนอะไรบ้าง ขั้นตอนหนึ่งจะนำไปสู่อีกขั้นตอนหนึ่งได้อย่างไร ซึ่งเป็นวิธีการคิดที่ไม่ได้ถูกเน้นมากนักในศาสตร์ใดเลย เพราะฉะนั้นผู้เขียนจึงเชื่อว่าทุกคนสามารถเขียนโปรแกรมได้ ถ้าหากเริ่มต้นปูพื้นฐานการคิดเชิงคำนวณ (computational thinking) และแก้โจทย์การเขียนโปรแกรมที่ไล่เรียงจากง่ายไปยาก

ภาษาคอมพิวเตอร์ถูกออกแบบมาให้สามารถประยุกต์ใช้กับงานต่าง ๆ ได้อย่างกว้างขวาง ซึ่งเมื่อเขียนโปรแกรมได้คล่องแล้ว ทำให้นำไปเขียนเป็นโปรแกรมได้หลากหลายมาก ความกว้างของภาษาคอมพิวเตอร์เป็นความท้าทายอีกอย่างหนึ่งของผู้ที่หัดเขียนโปรแกรม และรายวิชาและหนังสือตำราเขียนโปรแกรมมักจะครอบคลุมเนื้อหาอย่างครบถ้วน โดยเฉพาะเนื้อหาที่เป็นพื้นฐานของวิทยาศาสตร์คอมพิวเตอร์ เช่น เรื่องการวิเคราะห์อัลกอริทึม การเขียนโปรแกรมเชิงวัตถุขั้นสูง ซึ่งเป็นเรื่องที่น่าสนใจ น่าเรียน แต่ว่าทำให้รู้สึกว่าเนื้อหาล้นมาก และเข้าถึงได้ยาก ทำให้ผู้เรียนหมดกำลังใจในการศึกษา ในปัจจุบันการเขียนโปรแกรมไม่ใช่ทักษะสำหรับนักเขียนโปรแกรมแต่เพียงอย่างเดียว แต่เป็นทักษะที่สำคัญสำหรับนักวิเคราะห์ข้อมูล (data analyst) นักวิทยาการข้อมูล (data scientist) นักวิจัย และอาชีพอื่น ๆ ที่มีความจำเป็นต้องทำงานต่าง ๆ โดยอัตโนมัติให้มากขึ้นกว่าเดิม สิ่งนี้เป็นเหตุผลหลักที่ผู้เขียนต้องการเขียนหนังสือตำราที่สอนที่เฉพาะเจาะจงกับการวิเคราะห์ข้อมูล โดยเฉพาะอย่างยิ่งการวิเคราะห์ข้อมูที่เป็นตัวอักษร หรือการประมวลผลภาษาธรรมชาติ คือ การทำให้เครื่องคอมพิวเตอร์เข้าใจภาษา ทำให้สามารถทำความเข้าใจข้อมูลภาษาที่มีขนาดใหญ่ ๆ และสามารถประยุกต์ไปใช้สร้างเครื่องมือทางปัญญาประดิษฐ์มากมาย ผู้เขียนจึงคัดเลือกเนื้อหาที่เป็นแก่นสำคัญที่สุดในการเขียนโปรแกรมเพื่อวิเคราะห์ข้อมูล และเขียนเป็นหนังสือเล่มนี้เข้าถึงได้มากขึ้น โดยไม่ทำให้ผู้ที่ต้องการศึกษาสับสนหรือรู้สึกว่าเนื้อหาล้นเกินที่จะเข้าถึงได้

เริ่มต้นกับภาษา Python#

ไพทอน (Python) เป็นชื่อภาษาเขียนโปรแกรม (programming language) เป็นภาษาที่ได้รับความนิยมที่สุดในการประมวลผลและวิเคราะห์ข้อมูลต่าง ๆ ไม่ว่าจะเป็นข้อมูลที่เป็นตัวเลข ข้อมูลที่อยู่ในฐานข้อมูลเรียบร้อยแล้ว หรือข้อมูลที่เป็นภาษา โปรแกรมชิ้นหนึ่งประกอบด้วยชุดคำสั่งที่เราจะเขียนขึ้นเป็นภาษาไพทอน

ติดตั้งโปรแกรม Anaconda#

ส่วนประกอบต่าง ๆ ที่จำเป็นในการเขียนโปรแกรมเป็นภาษาไพทอน สามารถดาวน์โหลดพร้อมกันเป็นก้อนเดียวโดยการลงโปรแกรม Anaconda ซึ่งมีเครื่องมือต่าง ๆ ดังต่อไปนี้

  • Python Interpreter ตัวแปลคำสั่งที่เขียนเป็นภาษาไพทอน เป็นภาษาที่เครื่องคอมพิวเตอร์เข้าใจ เพื่อจะได้นำไปรัน ตามที่เขียนได้ ต้องสังเกตเวอร์ชันที่ใช้ด้วยให้เป็นปัจจุบันที่สุด

  • ไลบรารีภาษาไพทอนหลาย ๆ ตัวที่มักใช้สำหรับการประมวลผล และวิเคราะห์ข้อมูล ทำให้สะดวกสบายในการลงโปรแกรม

  • Anaconda prompt คือ Terminal ประเภทหนึ่ง ซึ่งมักจะประกอบด้วยหน้าจอสีดำ ๆ และข้อความที่แสดงผลให้ผู้ใช้พิมพ์คำสั่งลงไป Anaconda prompt ลงไปโดยตรง เราจะใช้เทอร์มินัลในการรันคำสั่งลง library ต่าง ๆ และรันคำสั่งในการไฟล์โค้ดไพทอน

  • สิ่งแวดล้อมสำหรับการพัฒนาแบบเบ็ดเสร็จ (Interactive Development Environment หรือ IDE) เป็นเครื่องมือที่ไว้สำหรับอำนวยความสะดวกในการเขียนโค้ด ส่วนหลักคือหน้าต่างที่ไว้สำหรับพิมพ์โค้ด และบันทึกโค้ดเก็บลงไฟล์ รวมถึงฟีเจอร์อื่น ๆ ที่ทำให้เขียนโค้ดได้อย่างมีประสิทธิภาพมากขึ้น เช่น ปรับเปลี่ยนสีตัวอักษรต่าง ๆ เพื่อให้ดูง่ายขึ้น และสามารถปรับหน้าต่างเพื่อแสดงโค้ดหลาย ๆ ไฟล์ หรือหลาย ๆ หน้า ได้ตามความพอใจ

../_images/jupyternb.png

ภาพที่ 1 ภาพตัวอย่างหน้าต่าง Jupyter notebook#

  • Jupyter notebook เป็น IDE ที่เรียบง่ายที่สุด และเป็นที่นิยมเป็นอย่างมากในหมู่นักวิเคราะห์ข้อมูล เพราะถูกออกแบบมาเพื่อการวิเคราะห์ข้อมูลโดยเฉพาะ เนื่องจาก Jupyter notebook รองรับการรันโค้ดทีละก้อนเล็ก ๆ และแสดงผลการคำนวณออกมาให้เห็นชัดเจน IDE นี้จึงถูกเรียกว่า notebook เพราะเปรียบเสมือนกับนักวิทยาศาสตร์ข้อมูลทำการวิเคราะห์ข้อมูลและจดบันทึกกระบวนการวิเคราะห์และผลวิเคราะห์ไว้ในสมุด เพื่อให้ทราบที่มาที่ไปของผลสรุปต่าง ๆ ที่ได้จากการวิเคราะห์ ไฟล์ที่จะสามารถเปิดด้วย Jupyter notebook ได้นั้นจะต้องมีนามสกุลไฟล์ (file extension) เป็น .ipynb

../_images/jupyterlab.png

ภาพที่ 2 ภาพตัวอย่างหน้าต่าง JupyterLab#

  • Jupyterlab เป็น IDE ที่เบาและ feature น้อยกว่า VSCode ทำให้ใช้ได้ไม่ยากนักสำหรับมือใหม่ ถูกออกแบบมาเพื่อการประมวลผลและวิเคราะห์ข้อมูลเป็นจุดประสงค์หลัก เหมาะกับการจัดการกับงานที่ต้องอาจจะต้องใช้ไฟล์ข้อมูล หลายไฟล์ และไฟล์ jupyter notebook (.ipynb) หลาย ๆ ไฟล์ และใช้ Terminal ควบคู่ไปกับการทำงานด้วย

Visual Studio Code (VSCode)#

นอกจากนั้นให้ลงโปรแกรม IDE ที่ชื่อว่า Visual Studio Code (VSCode)

../_images/vscode.png

ภาพที่ 3 ภาพตัวอย่างหน้าต่าง Visual Studio Code#

Visual Studio Code (VSCode) เป็น IDE ที่มีฟีเจอร์หลากหลายชนิด สามารถปรับรูปลักษณ์ตามความชอบได้หลายแบบ รวมถึงรองรับภาษาโปรแกรมหลายภาษา เหมาะกับการเขียนโปรแกรมที่ประกอบด้วยหลาย ๆ ไฟล์ และต้องมีการตรวจสอบโค้ดอย่างรัดกุม เป็น IDE ที่ดาวน์โหลดได้โดยไม่มีค่าใช้จ่าย และเป็นที่แพร่หลายมากในการเขียนโปรแกรมภาษาไพทอน VSCode สามารถเปิด Terminal ขึ้นมาใช้ในโปรแกรมได้อีกด้วย

หลังจากติดตั้งเรียบร้อยแล้ว ให้ไปที่ View > Extension จากนั้นพิมพ์ python และติดตั้ง python extension (อย่าลืมเช็คว่าเป็นของ Microsoft)

เขียนโปรแกรมแบบตอบโต้ (Interactive)#

หลังจากที่ลงโปรแกรม Anaconda เรียบร้อยแล้ว เราสามารถเริ่มเขียนโปรแกรมเป็นภาษาไพทอนได้ทันทีเพื่อทดสอบว่าลงโปรแกรมได้โดยสมบูรณ์แล้ว ให้เริ่มจากการเปิด Anaconda Prompt หรือ Anaconda Powershell ก็ได้ซึ่งเป็นเทอร์มินัลสำหรับผู้ที่ใช้ Windows หรือเปิด Terminal App ซึ่งเป็นเทอร์มินัลสำหรับผู้ที่ใช้ Mac จากนั้นให้พิมพ์คำว่า ipython ลงไปเพื่อเปิด Interactive Python Interpreter (ipython) และลองพิมพ์

 print('Hello, world!')

และกด Enter เพื่อทำการส่งคำสั่งที่เขียนเป็นภาษาไพทอนเพื่อให้ Python interpreter แปลเป็นภาษาเครื่องและรันคำสั่ง จากนั้นหน้าจอจะแสดงผลดังนี้

Python 3.7.6 (default, Jan  8 2020, 13:42:34)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.29.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: print('Hello, world!')
Hello, world!

In [2]:

โปรแกรม ipython เป็นโปรแกรมที่ทำให้เราสามารถพิมพ์คำสั่งภาษาไพทอนและกดรันเพื่อเห็นผลลัพธ์ได้ทันที ทำให้เราสามารถตอบโต้กับเครื่องไปมาเป็นภาษาไพทอนได้

เขียนโปรแกรมใส่ไฟล์ และสั่งรันทั้งไฟล์#

ในบางครั้งเราต้องการเขียนโปรแกรมที่ค่อนข้างยาว และต้องการรันโปรแกรมทั้งหมดที่อยู่ในไฟล์ เราสามารถเขียนโปรแกรมโดยการเขียนคำสั่งทั้งหมดใส่ไว้ในไฟล์ก่อน ซึ่งจะต้องมีสกุลไฟล์ .py จากนั้นค่อยสั่งให้ Python interpreter แปลและรันคำสั่งทั้งหมดในครั้งเดียว ไล่ไปทีละบรรทัด

รันด้วย JupyterLab#

วิธีการเขียนโปรแกรมใส่ไฟล์และรันโปรแกรมที่อยู่ในไฟล์นั้นผ่าน JupyterLab มีดังนี้

  1. เปิด Anaconda navigator

  2. กด Install (ถ้ายังไม่ได้ install) JupyterLab

  3. กด Launch JupyterLab

  4. กด File -> New -> Python file และตั้งชื่อว่า myfirstprogram.py ไฟล์จะถูกเปิดขึ้นบนหน้าต่างใหม่

  5. พิมพ์คำว่า print('Hello, world!') ใส่ในไฟล์และกด Save

  6. (Mac) กด File -> New -> Terminal เพื่อเปิด Terminal เป็นหน้าต่างใหม่บน JupyterLab (Windows) เปิด Anaconda Powershell

  7. พิมพ์คำว่า python myfirstprogram.py ลงไปบนเทอร์มินัล จากนั้นให้กด enter

หน้าต่างเทอร์มินัลจะแสดงคำว่า Hello, world! แต่ว่าเทอร์มินัลของแต่ละเครื่องก็จะต่างกันไป

$ python myfirstprogram.py
Hello, world!

รันด้วย VS Code#

วิธีการเขียนโปรแกรมใส่ไฟล์และรันโปรแกรมที่อยู่ในไฟล์นั้นผ่าน VS Code มีดังนี้

  1. เปิด VS Code

  2. กด File -> New File และตั้งชื่อว่า myfirstprogram.py ไฟล์จะถูกเปิดขึ้นบนหน้าต่างใหม่

  3. พิมพ์คำว่า print('Hello, world!') ใส่ในไฟล์และกด Save

  4. กด Terminal -> New Terminal เพื่อเปิด Terminal เป็นหน้าต่างใหม่บน VS Code

  5. พิมพ์คำว่า python myfirstprogram.py ลงไปบนเทอร์มินัล จากนั้นให้กด enter

หน้าต่างเทอร์มินัลจะแสดงคำว่า Hello, world! แต่ว่าเทอร์มินัลของแต่ละเครื่องก็จะต่างกันไป

ในบทนี้เราเรียนรู้เกี่ยวกับส่วนประกอบต่าง ๆ ที่รับโค้ดที่เป็นคำสั่งภาษาไพทอน แปลผล และกระทำการตามคำสั่ง เราได้ติดตั้ง Python interpreter และ IDE ต่าง ๆ ที่จะช่วยอำนวยความสะดวกในการเขียนและรันโค้ด ในบทต่อไปเราจะเขียนโปรแกรมใส่ไฟล์และรันโปรแกรมที่อยู่ในไฟล์นั้นผ่านเทอร์มินัลในลักษณะเดียวกันนี้ แนะนำให้ใช้ JupyterLab เป็น editor และรันโปรแกรมผ่านทาง Anaconda Powershell/Terminal App