โปรแกรมสำหรับเขียนภาษาไพธอน#

\(\qquad\) ปัจจุบัน ภาษา Python ได้รับความนิยมอย่างสูง การเขียนโปรแกรมภาษา Python ก็มีมากมายหลากหลายวิธีเช่นกัน ไม่ว่าจะเป็นการเขียนบนเครื่องคอมพิวเตอร์ของเราเอง เช่น IDLE (Integrated Development and Learning Environment) [IPython] (https://ipython.org/)(Jupyter Notebook, Jupyter Lab) ที่ต้องติดตั้งโปรแกรมก่อน หรือจะเขียนออนไลน์ในเบราว์เซอร์บนคลาวด์ เช่น NEMDLab-JupyterHub (KMITL) Google Colaboratory (Colab) โดยที่ไม่ต้องติดตั้งโปรแกรม เพียงแค่มี Google Account (Gmail) และ Internet เท่านั้น (ฟรี)

\(\qquad\) ในบทนี้จะแนะนำการใช้งาน Jupyter Notebook ที่อยู่บนคลาวด์ NEMDLab-JupyterHub (KMITL) และ Google Colaboratory (Colab) )


NEMDLab-JupyterHub (KMITL)#

NEMDLab-JupyterHub คืออะไร#

\(\qquad\) JupyterHub เป็นเซิร์ฟเวอร์สำหรับใช้งาน Jupyter Notebooks ที่ละหลายๆ ยูสเซอร์พร้อมกันบนคราวด์

\(\qquad\) NEMDLab-JupyterHub เป็นโฮสต์เซิร์ฟเวอร์โปรแกรม Jupyter Notebook (JupyterHub) ของภาควิชาอิเล็กทรอนิกส์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง (KMITL) เปิดให้บริการฟรีแก่บุคคลทั่วไปเพื่อการศึกษา

เราสามารถใช้ NEMDLab-JupyterHub เขียนและรันโค้ดในเบราว์เซอร์ เสมือนกับว่าเรากำลังใช้ Jupyter บนเครื่องคอมพิเตอร์ของตนเอง (มียูสเซอร์อินเทอร์เฟซ (User Interface (UI) เหมือนกับ Jupyter Notebook ที่รันบนเครื่องคอมฯ ของเราทุกประการ)

เริ่มใช้งาน NEMDLab-JupyterHub#

\(\qquad\) ลงชื่อเข้าใช้งาน NEMDLab-JupyterHub ด้วยบัญชี Gmail (ได้ทั้งบัญชีส่วนบุคคล (@gmail.com) และบัญชีโรงเรียน/องค์กร (@your_school/company) ที่ผูกกับบริการของ Google Workspace)

อัพโหลด Notebook#

\(\qquad\) หลังจากที่ JupyterHub ทำการติดตั้งบัญชีเสร็จสิ้น คุณจะเห็นหน้าเว็บที่พร้อมใช้งานดังแสดงในรูปด้านล่าง ให้คลิกปุ่ม “Upload” ที่มุมขวาบน เพื่ออัปโหลดไฟล์

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

จากนั้น ให้เลือกไฟล์ที่ต้องการจะอัพโหลด

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

บนหน้าเว็บจะแสดงชื่อไฟล์ (เป็นชื่อไฟล์เดิมของต้นฉบับ สามารถเปลี่ยนชื่อได้ ถ้าต้องการ) กดคลิกปุ่ม “Upload” เพื่อยืนยันชื่อไฟล์

ไฟล์จะถูกอัปโหลดเข้าเซิร์ฟเวอร์

หากต้องการเปิดไฟล์ ให้คลิกที่ชื่อไฟล์ที่ต้องการ ระบบจะเปิด tab ใหม่ดังรูปด้านล่าง

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

ไฟล์ที่อัพโหลดจะต้องเป็นไฟล์ Jupyter Notebook ที่มีนามสกุลไฟล์ (Extension) เป็น .ipynb (Interactive PYthon NoteBook)

เราสามารถอัพโหลดไฟล์ใหม่ได้ในหน้า Home โดยกดปุ่ม “Upload” … ตามที่ได้อธิบายไปแล้วก่อนหน้า

การสร้าง Notebook#

\(\qquad\) เราสามารถสร้าง Notebook ใหม่ ในหน้า “Home” หรือในหน้า Notebook ที่กำลังเปิดอยู่ก็ได้

  • การสร้าง Notebook ในหน้า “Home” เราสามารถสร้าง Notebook ใหม่ โดยคลิกปุ่ม “New” > Notebook “Python3” ระบบจะเปิด tab ใหม่ เป็นหน้า Notebook สำหรับเข๊ยนโค้ดไพธอน

  • การสร้าง Notebook ในหน้า “Notebook” ในหน้า Notebook ที่กำลังเปิด ให้คลิกเมาส์ที่แถบเมนู “File” แล้วเลือก “New notebook” (“File” > “New notebook” > “Python3”) ระบบจะเปิด tab ใหม่ เป็นหน้า Notebook สำหรับเข๊ยนโค้ดไพธอน

ทั้งสองวิธีจะได้ผลลัพธ์ดังหน้าต่างด้านล่าง

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

\(\qquad\) Notebook ที่ถูกสร้างจะเป็นไฟล์ที่มีนามสกุลไฟล์ (Extension) เป็น .ipynb โดยจะมีชื่อเป็น Untitled (อาจมีเลข เช่น 1 ต่อท้าย) โดยอัตโนมัติ เราสามารถเปลี่ยนชื่อไฟล์โดยการคลิกที่แถบเมนู “File” > “Rename” หรือดับเบิ้ลคลิกที่ชื่อไฟล์ (ชื่อไฟล์อยู่ข้างขวาของโลโก้ เหนือแถบเมนู)

ขอให้สังเกต จะมี Python 3 อยู่มุมขวาของหน้าต้าง

กล่องรับข้อความที่ปรากฏขึ้นมา เรียกว่าเซลล์ (cell) เราสามารถป้อนคำสั่งไพธอนลงไปในเซลล์กี่คำสั่งก็ได้แต่คำสั่งจะยังไม่ถูกประมวลผลจนกว่าจะสั่งให้รันเซลล์

การเขียน Notebook#

ด้านล่างของชื่อ Notebook (Untitled.ipynb) ใต้โลโก้จะเป็นแถบของเมนู เช่น File, Edit, View, Insert, Cell, Kernel, Widgets และ Help

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

หากต้องการเพิ่มเซลล์ ให้กดไอคอน “+” เพิ่มเซลล์ใหม่ต่อท้ายเซลล์

ในระหว่างการเขียนโค้ด เราสามารถกดคีย์ลัด (Shortcut keys) Ctrl + S (Mac: Cmd + S) เพื่อทำการบันทึก Notebook อย่างไรก็ตาม เซิฟเวอร์จะบันทึกไฟล์ Notebook โดยอัตโนมัติ (ดูเวลาที่ไฟล์ถูกบันทึกล่าสุด (AutoSave) ได้ที่ Last Checkpoint เหนือแถบเมนู)

หากต้องการอ่านคำอธิบายเพิ่มเติมที่เกี่ยวกับการใช้ Jupyter Notebook สามารถเข้าไปดูได้ใน Jupyter/IPython Notebook Quick Start Guide

Cells (เซลล์)#

Notebook (ไฟล์ .ipynb) ประกอบด้วยกล่องรับที่เรียกว่า

เซลล์ (cell) แบ่ง 2 ประเภทได้แก่

  • Code cell (โด้ด): Code cell เป็นเซลล์ที่เอาไว้เขียนโค้ดของไพธอน (ไม่จำกัดจำนวนคำสั่งไพธอนในเซลล์ จะมีกี่คำสั่งก็ได้เท่าที่ต้องการ) ด้านซ้ายสุดของเซลล์จะแสดงด้วยวงเล็บสี่เหลี่ยม In [ ]
    คำสั่งที่อยู่ในเซลล์จะยังไม่ถูกประมวลผลจนกว่าจะสั่งให้รันโดยคลิกที่แถบเมนู “Cell” > “Run” (วิธีสั่งให้รันมีหลายวิธี เช่น คลิกไอคอน “Run” ที่อยู่ใต้แถบเมนู หรือรันโดยการกด Shift ค้างไว้แล้วกด Enter (ผู้เขียนใช้วิธีนี้มากที่สุด)) โดยผลลัพธ์ของการรันโค้ดจะแทรกด้านล่างของเซลล์ ดังแสดงในรูปด้านล่าง
    หลังจากที่โค้ดเซลล์ประมวลผลเสร็จสิ้น วงเล็บสี่เหลี่ยม In [ ] ตรงขอบด้านซ้ายของเซลล์ปรากฎตัวเลข เช่น In [1], In [2], … ตัวเลขดังกล่าวบอกถึงลำดับที่ที่เซลล์นั้นถูกรัน โดยจะเพิ่มขึ้นทีละ 1 ทุกครั้งที่มีการรัน ดังนั้น หากรันเซลล์เดียวกันซ้ำๆ ติดต่อกัน ตัวเลขที่ปรากฎก็จะเพิ่มขึ้นทีละ 1 ทุกครั้งที่รัน

  • Markdown cell (ข้อความ): Markdown cell เป็นเซลล์ที่เอาไว้เขียนคำอธิบาย เราสามารถพิมพ์ข้อความ เขียนสมการ ใส่รูปภาพ/วิดีโอเข้าไปในเซลล์นี้ได้ ด้านซ้ายสุดของ Markdown cell จะไม่มีวงเล็บสี่เหลี่ยม [ ] แสดง) ดังแสดงในรูปด้านล่าง

โหมดและคำสั่งพื้นฐานของ Jupyter Notebook#

ใน Jupyter Notebook จะมีการทำงานอยู่ 2 โหมดด้วยกัน คือ

  1. Edit mode และ

  2. Command mode

Edit mode#

Edit mode คือโหมดสำหรับการแก้ไข (Edit) ใช้แก้เนื้อหาในเซลล์ หากเซลล์อยู่ในโหมดนี้ แถบข้างเซลล์จะกลายเป็นสีเขียว และมีเคอร์เซอร์กระพริบๆ ปรากฎเพื่อรอแก้ไขข้อมูล

ในโหมดนี้เราจะทำอะไรกับข้อความในเซลล์นี้ก็ได้ ดังรูป

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

คีย์ลัดที่ใช้บ่อยใน Edit Mode

  • Shift + Enter : สั่งรันเซลล์ที่เลือกไว้

  • Shift + Tab : แสดง Docstring ของฟังก์ชัน/โมดูลที่กำลังเรียกใช้งาน

  • Shift + \(\uparrow\) (Arrow up) / \(\downarrow\) (Arrow down) : เลือกบรรทัดทีละหลายบรรทัด (เพื่อไว้คัดลอก ลบ ฯลฯ ทีเดียวหลายบรรทัด)

  • Ctrl/Cmd + Shift + - (เครื่องหมายลบ) : แบ่งเซลล์ออกเป็นสองเซลล์ (Split cell)

  • Ctrl/Cmd + S : บันทึก (Save) Notebook (Checkpoint save)

  • Ctrl/Cmd + / : Comment และ Uncomment

  • Ctrl/Cmd + [ : ย่อหน้า Indent

  • Ctrl/Cmd + ] : ลบย่อหน้า Dedent

(Windows: Ctrl, Mac: Cmd)

Command mode#

Command Mode คือโหมดสำหรับสั่งงาน Notebook หากเซลล์อยู่ในโหมดนี้ แถบข้างเซลล์จะกลายเป็นสีฟ้า เวลากดคีย์บอร์ดจะถือเป็นการกดคีย์ลัด เพื่อส่งคำสั่งไปยัง Notebook ไม่ได้กดเพื่อแก้ไขข้อความในเซลล์

ในโหมดนี้ Notebook พร้อมที่จะรับคำสั่งคีย์ลัด ดังรูป

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

คีย์ลัดที่ใช้บ่อยใน Command Mode

  • A แทรกเซลล์ใหม่ข้างบน (Above) เซลล์ที่เลือกไว้

  • B : แทรกเซลล์ใหม่ข้างใต้ (Below) เซลล์ที่เลือกไว้

  • Shift + \(\uparrow\) (Arrow up) / \(\downarrow\) (Arrow down) : เลือกเซลล์ทีละหลาย ๆ เซลล์ (เพื่อไว้รันคำสั่งพร้อมกันหลายๆ เซลล์)

  • Shift + M : รวม (Merge) เซลล์ที่เลือกไว้ให้เป็นเซลล์เดียว

  • Shift + L : สวิตซ์แสดงหมายเลขบรรทัด (Line No.)

  • S หรือ Crtl/Cmd + S: เซฟบันทึก (Save) Notebook (Checkpoint save)

  • Y : เปลี่ยนเซลล์ที่เลือกไว้เป็น Code cell

  • M : เปลี่ยนเซลล์ที่เลือกไว้เป็น Markdown cell

  • D + D : ลบเซลล์ที่เลือกไว้ (ระวัง เซลล์อาจถูกลบถาวร)

  • X : ลบเซลล์ที่เลือกไว้ (ระวัง เซลล์อาจถูกลบถาวร)

  • 0 + 0 (กดศูนย์ต่อเนื่องสองครั้ง) : สั่ง Restart Kernel ใช้ในกรณีโปรแกรมที่ตอบสนอง

  • I + I (กด I ต่อเนื่องสองครั้ง) : สั่งยกเลิกการรันในขณะนั้น ใช้ในกรณี Interupt โปรแกรม

  • H: ดูคีย์ลัดทั้งหมด (Keyboard shortcuts) (ยูสเซอร์สามารถตั้งค่าเองได้)

  • Shift + Enter : สั่งรันเซลล์ที่เลือกไว้

เราสามารถสลับระหว่าง 2 โหมดนี้ได้ โดยการคลิกหรือดับเบิ้ลคลิกภายในเซลล์ หรือ คลิกภายนอกเซลล์

การแก้ไขเซลล์#

เราสามารถแก้ไขโด้ด (ในโหมด Edit mode) โดยเลื่อนเคอร์เซอร์เมาส์ไปยังตำแหน่งของเซลล์ที่ต้องการแก้ แล้วคลิก เซลล์ดังกล่าวจะถูกเลือกโดยมีสัญลักษณ์เป็นการตีกรอบล้อมรอบ แถบข้างเซลล์จะกลายเป็นสีเขียว และจะมีเคอร์เซอร์กระพริบๆ ปรากฎขึ้นเพื่อรอแก้ไขข้อมูล

สามารถใช้คีย์ลัดต่อไปนี้ได้

  • Ctrl/Cmd + C: Copy (คัดลอก)

  • Ctrl/Cmd + X: Cut (ตัด)

  • Ctrl/Cmd + V: Paste (วาง)

  • Ctrl/Cmd + Z: Undo (เลิกทำ) … (Windows: Ctrl, Mac: Cmd)

เมื่อแก้ไขโค้ดเซลล์แล้ว ให้ทำการกด Shift + Enter (หรือ Shift + Return) โค้ดในเซลล์นั้นจะถูกรันและเคอร์เซอร์กระพริบๆ จะขยับไปยังเซลล์ถัดไป

การแทรกเซลล์#

เราสามารถแทรกโค้ดเซลล์ใหม่โดยกดปุ่มไอคอน “+ ” (อยู่ด้านล่างของแถบเมนู) โค้ดเซลล์ใหม่จะถูกแทรกด้านล่างของเซลล์ที่กำลังทำงานอยู่

ในกรณีของการแทรก Markdown ก็เช่นกัน ให้กดปุ่มไอคอน “+” (อยู่ด้านล่างของแถบเมนู) จากนั้นเปลี่ยนเซลล์ให้เป็น Markdown cell โดยคลิกที่ไอคอนใต้แถบเมนู เปลี่ยนจาก “Code”เป็น “Markdown” หรือใช้คีย์ลัด M Markdown cell ใหม่จะถูกแทรกด้านล่างของเซลล์ที่กำลังทำงานอยู่ (วิธีการเขียน Markdown จะไม่อธิบาย แต่สามารถศึกษาเพิ่มเติมได้ https://jupyter-notebook.readthedocs.io

กรณีที่เซลล์รันค้าง (ไม่ตอบสนอง)#

ตามที่ได้อธิบายไแแล้วว่า ตัวเลขที่ปรากฏอยู่ในวงเล็บสี่เหลี่ยม [ ] หน้าเซลล์เป็นตัวระบุลำดับที่เซลล์นั้นถูกรัน แต่ถ้าปรากฏเครื่องหมายดอกจันทร์หรือดาว * ภายในวงเล็บสี่เหลี่ยม In [*] แสดงว่าการประมวลผลของเซลล์นั้นยังไม่เสร็จ ซึ่งมักพบในกรณีที่ใช้คำสั่งที่ต้องใช้เวลาในการประมวลผล หรือคำสั่งประเภทวนลูป (ดังตัวอย่างด้านล่าง) ในกรณีที่เราต้องการให้หยุดการประมวลผล ให้คลิกแถบเมนู “Kernel” (อินเตอร์พรีเตอร์ของไพธอน) > “Interrupt” หรือกดคีย์ลัด I ต่อเนื่องสองครั้ง

แต่ถ้ายังไม่ตอบสนองอีก ให้คลิกแถบเมนู “Kernel” > “Restart” หรือกดคีย์ลัด 0 ต่อเนื่องสองครั้ง เพื่อรีเซ็ท Kernel ใหม่

ตัวอย่าง ลองกรันเซลล์ต่อไปนี้ (เป็นลูปอนันต์ (Infinity loop) รันค้างไม่หยุดทำงาน) จากนั้นกด I ต่อเนื่องสองครั้งเพื่อให้ออกจากลูป

while True:
    pass
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
Cell In [1], line 2
      1 while True:
----> 2     pass

KeyboardInterrupt: 

เปิดหน้า Terminal#

ในกรณีที่เราต้องการเปิด Shell เพื่อดูไฟล์หรือรันคำสั่งบางอย่าง เราสามารถเปิดหน้า Terminal ได้จากใน JupyterHub ได้ โดยในหน้า Home ให้คลิกปุ่ม “New” > “Terminal”

ระบบจะเปิด tab ใหม่ เป็นหน้าจอ terminal สำหรับรัน shell command จากหน้าเว็บ ดังตัวอย่างในรูปด้านล่าง

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

ในรูปมีการใช้คำสั่ง “ls” เพื่อแสดงรายชื่อไฟล์ต่างๆ ที่จัดเก็บอยู่ใน Directory หรือ Folder, ใช้คำสั่ง “python hello5.py” เพื่อรันไฟล์ .py, ใช้คำสั่ง “python” เพื่อรันไพธอนบน Terminal ซึ่งจะเป็นการพิมพ์คำสั่งทีละคำสั่ง โดยไม่ต้องสร้างไฟล์ .py ขึ้นมา

ดังนั้นจะเห็นว่า Jupyter Notebook (Ipython Notebook) ทำให้เราสามารถใช้งานทั้งโหมดโต้ตอบ (Interactive mode) และโหมดสคริปต์ (Script mode) ผสมผสานกันได้


Google Colaboratory (Colab)#

Colab คืออะไร#

Colab ชื่อเต็มคือ Google Colaboratory เป็นบริการในด้านซอฟต์แวร์ (Software as a Service (SaaS)) ของ Google ที่อนุญาตให้ผู้ใช้งานเขียนซอร์สโค้ดและเรียกใช้งานโค้ดไพธอนจากเบราว์เซอร์ โดยรันโค้ดอยู่บนคราวด์ ซึ่งทุกคนสามารถใช้งานได้ เพียงแค่มีบัญชี Google

Colab หรือ “Colaboratory” ช่วยให้เราเขียนและรันโค้ด Python บนเบราว์เซอร์โดยที่ไม่จำเป็นต้องติดตั้งโปรแกรมใดๆ สามารถประมวลผลด้วย GPU โดยไม่มีค่าใช้จ่าย และยังสามารถแชร์โค้ดได้ง่ายๆ

เริ่มใช้งาน Colaboratory#

หลังจากลงชื่อเข้าใช้บัญชี Google แล้ว (ได้ทั้งบัญชีส่วนบุคคล (@gmail.com) และบัญชีโรงเรียน/องค์กร (@your_school/company) ที่ผูกกับบริการของ Google Workspace) ให้เปิด URL ต่อไปนี้

อัพโหลด Notebook#

เมื่อ Colaboratory ถูกเปิดใช้ จะมีหน้าต่างให้เปิด Notebook ดังที่แสดงด้านล่าง ให้เลือกแท็บ “Upload” เพื่ออัปโหลดไฟล์

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

จากนั้น ให้เลือกไฟล์ที่ต้องการจะอัพโหลด

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

ไฟล์ที่เลือกจะถูกอัปโหลดไปยัง Google drive จากนั้น Colaboratory จะเปิดไฟล์ดังกล่าวในเบราว์เซอร์ดังที่แสดงด้านล่าง

\[\begin{split} \begin{aligned} \\ \end{aligned} \end{split}\]

ไฟล์ที่อัพโหลดจะต้องเป็นไฟล์ Jupyter Notebook ที่มีนามสกุลไฟล์ (Extension) เป็น .ipynb (Interactive PYthon NoteBook)

หากต้องการอัพโหลดโน้ตบุ๊กไฟล์ใหม่ ก็ให้เลือก “Upload notebook” จากแถบเมนูไฟล์ของ Colaboratory แล้วทำการอัพโหลดไฟล์ที่ต้องการ

การสร้าง Notebook#

หากต้องการสร้าง Notebook ใหม่ ให้คลิกเมาส์ที่แถบเมนู “File” แล้วเลือก “New notebook” (“File” > “New notebook”) ไฟล์ Notebook ที่ถูกสร้างขึ้นจะมีชื่อ Untitled0.ipynb โดยอัตโนมัติ เราสามารถเปลี่ยนชื่อไฟล์โดยการคลิกที่แถบเมนู “File” > “Rename” หรือดับเบิ้ลคลิกที่ชื่อไฟล์ (ชื่อไฟล์อยู่ข้างขวาของโลโก้ เหนือแถบเมนู)

การเขียน Notebook#

ด้านล่างของชื่อ Notebook (file_name.ipynb) ใต้โลโก้จะเป็นแถบของเมนู เช่น File Edit View … ถัดลงมาจากแถบเมนู จะมีปุ่ม “+ code” และ “+ text”

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

เราสามารถกดคีย์ลัด (Shortcut keys) Ctrl + S (Mac: Cmd + S) เพื่อทำการบันทึก Notebook ที่กำลังแก้ไขหรือใช้งานอยู่ลงใน Google ไดรฟ์ อย่างไรก็ตาม Notebook จะถูกบันทึกโดยอัตโนมัติเนื่องจากไฟล์ถูกจัดเก็บอยู่ใน google drive

หากเห็น “All changes saved” ตรงขวาสุดของแถบเมนู ก็ไม่ไม่จำเป็นกดคีย์ Ctrl/Cmd + S

แม้ว่า Google Colaboratory จะมีพื้นฐานมาจาก Jupyter ซึ่งเป็นโอเพนซอร์ส (Open source) แต่ถ้าสังเกตให้ดีจะพบว่า การออกแบบยูสเซอร์อินเทอร์เฟซ (User Interface (UI) เช่น หน้าเว็บ เมนูต่างๆ) จะแตกต่างกับ Notebook ในเบราว์เซอร์บนเครื่องคอมฯ ของเราอย่างมาก

หากต้องการศึกษาเพิ่มเติมที่เกี่ยวกับ Jupyter Project สามารถเข้าไปดูได้ใน Jupyter Project Documentation

Cells (เซลล์)#

Notebook (ไฟล์ .ipynb) ประกอบด้วยกล่องรับที่เรียกว่า

เซลล์ (cell) แบ่ง 2 ประเภทได้แก่

  • Code cell (โด้ด): Code cell เป็นเซลล์ที่เอาไว้เขียนโค้ดของไพธอน (ไม่จำกัดจำนวนคำสั่งไพธอนในเซลล์ จะมีกี่คำสั่งก็ได้เท่าที่ต้องการ) ด้านซ้ายสุดของเซลล์จะแสดงด้วยวงเล็บสี่เหลี่ยม “[ ]” หากเลื่อนเมาส์ไปที่ [ ] จะแสดงสัญลักษ์ PLAY \(\triangleright\) และถ้าคลิก โค้ดที่อยู่ในเซลล์ก็จะถูกรัน โดยผลลัพธ์ของการรันโค้ดจะแทรกด้านล่างของเซลล์ (นอกจากนี้ ยังสามารถทำการรันได้โดยการกด Shift ค้างไว้แล้วกด Enter)
    หลังจากที่โค้ดเซลล์ประมวลผลเสร็จสิ้น วงเล็บสี่เหลี่ยม [ ] ตรงขอบด้านซ้ายของโค้ดเซลล์จะปรากฎตัวเลข เช่น [1], [2], … ตัวเลขอยู่ดังกล่าวบอกถึงลำดับที่ที่เซลล์นั้นถูกรันโดยจะเพิ่มขึ้นทีละ 1 ทุกครั้งที่มีการรัน ดังนั้น หากรันเซลล์เดียวกันซ้ำๆ ติดต่อกัน ตัวเลขที่ปรากฎก็จะเพิ่มขึ้นทีละ 1 ทุกครั้งที่รัน

  • Markdown cell (ข้อความ): Markdown cell เป็นเซลล์ที่เอาไว้เขียนคำอธิบาย เราสามารถพิมพ์ข้อความ เขียนสมการ ใส่รูปภาพ/วิดีโอเข้าไปในเซลล์นี้ได้ (ด้านซ้ายสุดของเซลล์จะไม่มีวงเล็บสี่เหลี่ยม [ ] แสดง)

การแก้ไขเซลล์#

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

สามารถใช้คีย์ลัดต่อไปนี้ได้

  • Ctrl/Cmd + C: Copy (คัดลอก)

  • Ctrl/Cmd + X: Cut (ตัด)

  • Ctrl/Cmd + V: Paste (วาง)

  • Ctrl/Cmd + Z: Undo (เลิกทำ) …

เมื่อแก้ไขโค้ดเซลล์แล้ว ให้ทำการกด Shift + Enter (หรือ Shift + Return) โค้ดในเซลล์นั้นจะถูกรันและเคอร์เซอร์กระพริบๆ จะขยับไปยังเซลล์ถัดไป

การแทรกเซลล์#

เราสามารถแทรกโค้ดเซลล์ใหม่โดยกดปุ่ม “+ Code” (อยู่ด้านล่างของแถบเมนู) โค้ดเซลล์ใหม่จะถูกแทรกด้านล่างของเซลล์ที่กำลังทำงานอยู่

การแทรก Markdown cell ก็เช่นกัน กดปุ่ม “+ Text” (อยู่ด้านล่างของแถบเมนู) Markdown cell ใหม่จะถูกแทรกด้านล่างของเซลล์ที่กำลังทำงานอยู่ (วิธีการเขียน Markdown จะไม่อธิบาย แต่สามารถศึกษาเพิ่มเติมได้ https://jupyter-notebook.readthedocs.io

กรณีที่เซลล์รันค้าง (ไม่ตอบสนอง)#

ตัวเลขที่ปรากฏอยู่ในวงเล็บสี่เหลี่ยม [ ] หน้าเซลล์เป็นตัวระบุลำดับที่เซลล์นั้นถูกรัน แต่ถ้าปรากฏเป็นไอคอน \(\square\) ใน \(\bigcirc\) หมุนติ้วๆ แสดงว่าการประมวลผลของเซลล์นั้นยังไม่เสร็จ ซึ่งมักพบในกรณีที่ใช้คำสั่งที่ต้องใช้เวลาในการประมวลผล หรือคำสั่งประเภทวนลูป (ดังตัวอย่างด้านล่าง) ในกรณีที่เราต้องการให้หยุดการประมวลผล ให้กดไอคอน \(\square\) ใน \(\bigcirc\) (สัญลักษณ์ STOP) หน้าเซลล์

ตัวอย่าง ลองกดปุ่ม PLAY เพื่อรันเซลล์ต่อไปนี้ จากนั้นกดปุ่ม STOP

ตัวอย่าง ลองกดปุ่ม PLAY เพื่อรันเซลล์ต่อไปนี้ (เป็นลูปอนันต์ (Infinity loop) รันค้างไม่หยุดทำงาน (ไม่ตอบสนอง)) จากนั้นกดปุ่ม STOP เพื่อให้ออกจากลูป

while True:
    pass

คำสั่งอื่นๆ ที่เกี่ยวข้องกับเซลล์#

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

การแชร์ Notebook#

เนื่องจาก Colaboratory บันทึกไฟล์ Nodebook ใน Google drive ดังนั้น เราสามารถปลี่ยนการตั้งค่าการแชร์โดยกดปุ่ม “Share” ที่ด้านบนขวา คุณก็จะสามารถแชร์ Notebook ไปให้อาจารย์ผู้สอนหรือเพื่อนร่วมงานโดยบอกลิ้งค์ URL ได้


Author#

S.C.

Change Log#

Date

Version

Change Description

05-05-2022

0.2

First edition