--- title: การเขียนโปรแกรมคอมพิวเตอร์ ปี 1 subtitle: date: วันอังคารที่ 11 มกราคม 2565 เวลา 12.50 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) (อาจารย์สุธิรา) สวัสดีค่ะ (พี่อี๊ด) สวั (อาจารย์สุธิรา) สวัสดีค่ะ เลทนิดหนึ่ง พอดีเมื่อเช้ามีประชุม เพิ่งกินข้าวเสร็จ ก็เลยช้านิดหนึ่งนะเด็ก ๆ เด็ก ๆ น่าจะรอส่งลิงก์ปุ๊บ เข้าปั๊บ ยังไม่เปิด Power Point เลย ก็บางคนไม่มีสันชาติณาญ ไงลูก ใครเข้ามาแล้วบ้าง โยโกะเข้ามาแล้วนะคะ เขียดมาแล้ว เอ็ม, โฟร์ ดอม อบ, มิ้น, สาว ๆ ยังไม่เข้า พายุ เดี๋ยวรออีกสัก 5 นาทีนะคะ ขอตัวแป๊บหนึ่ง (อาจารย์สุธิรา) โอเค สมาชิกเข้ามาน่าจะครบแล้วนะคะ โยโกะ, พายุ เชอร์รี่ เขียด แล้วก็มิ้น, เอ็ม, โฟร์ พี่ตี๋มาแล้วหรือครับ อาทิตย์ที่แล้วหายไปไหนเอ่ย (นักศึกษาชาย) ไปทุ่งนาครับ ทุ่งนา กลับบ้านหรือลูก (นักศึกษาชาย) ครับผม (อาจารย์สุธิรา) (อาจารย์สุธิรา) อ๋อ แล้วตอนนี้มา ม. หรือยัง (นักศึกษาชาย) ยังครับผม (อาจารย์สุธิรา) อ๋อ ยังอยู่บ้านอยู่นะ โอเค ดูนะคะ เดี๋ยวดูหลังวันที่ 17 อีกทีหนึ่งนะเด็ก ๆ ว่าจะมีประกาศอะไรอีกไหม เพราะตอนนี้ ก็คือสถานะเรียนออนไลน์ถึงวันที่ 17 ถ้าอาทิตย์นี้ยังไม่เห็นประกาศใหม่นะ เราจะรอดูวันที่ 17 อีกทีหนึ่ง ไม่อย่างนั้น ก็ถ้าประกาศก็น่าจะวันศุกร์ ถ้าไม่มีประกาศอะไรมาใหม่นะ วันนี้ก็เราก็จะเรียนออนไลน์กันอีกครั้งหนึ่งนะคะ มาดูหัวข้อที่เราจะเรียนกันวันนี้กันดีกว่า เพื่อไม่ให้เป็นการเสียเวลา เราจะเรียนเกี่ยวกับว Function นะคะ ในการเขียนโปรแกรมนี่ เราจะต้องรู้จักวิธีการเขียนฟังก์ชัน ซึ่งฟังก์ชันนี่ใน Python นี่เขาใช้ได้ 2 ส่วน ก็คือถ้าเขียนโดยลำพังเขานี่ จะเรียกว่า "Function" ที่เอาไปเขียนไว้ใน class นะคะ มันจะกลายเป็น Method เดี๋ยวเรามาดูกันว่าฟังก์ชันมันมีความจำเป็นอย่างไร ทำไมเราถึงต้องเขียนนะคะ ก่อนอื่นเราก็ต้องมารู้จักกับความหมายของมันก่อนนะคะ ถ้าพูดถึง Function นี่ ให้เด็ก ๆ นึกถึงโปรแกรมย่อย โปรแกรมเล็ก ๆ น่ะค่ะ บางทีเขาจะเรียกว่า "Method" หรือ "Routine" นะคะ มันจะเป็นโปรแกรมที่อยู่ในโปรแกรมใหญ่เราอีกทีหนึ่งนะคะ แต่มันดีอย่างไร ถ้าฟังก์ชันใน Python นี่ เขียนแล้วนี่บางตัวนี่มันสามารถไปเรียกใช้มาเขียนเป็น Function นี่จะสามารถเรียกใช้งานได้นะคะ โดยเป็นการที่เราเขียนFunction ขึ้นมานี่จะต้องมีการนิยามชื่อ ตั้งชื่อให้มัน ตั้งชื่อ Function นะคะ ตั้งชื่อเพื่ออะไรเพื่อที่เวลาจะเรียกใช้ เมื่อสร้างเสร็จแล้วนี่ เราสามารถเรียกใช้งานมันได้นะคะ มันก็จะทำงานตามที่เราต้องการนะคะ โดย Function นี่จะมีทั้งหมดอยู่ 2 ชนิดนะคะ ใน Python นี่Function ออกเป็น 2 แบบ ก็คือแบบ Function มาตรฐานนะคะ ตัวนี้แบบที่ 1 นี่มันจะอยู่ใน Libery แล้ว มันสร้างไว้แล้ว มีคนสร้างไว้แล้ว และเอาไปทำใส่ Library ไว้ จะเรียกใช้งานเห็นไหมคะ ก็คือถ้าใช้คำสั่ง import นี่ ชื่อ เช่น Import pygame นั่นก็แสดงว่า pygame น่ะ เป็น Function หนึ่ง Import.sys นะคะ นั่นก็คือมี Function ที่ชื่อว่า เราไปสามารถเรียกใช้ได้จะเป็น Function ที่เรียกว่า Function มาตรฐาน จะมีคนทำไว้แล้ว แล้วเราไปเรียกใช้ของเขาได้เลยนะคะ กับแบบที่ 2 ฟังก์ชันที่เราเป็นคนเขียนขึ้นนะคะ Use defined dunction เพื่อใช้ในโปรแกรมที่เราจะพัฒนาในแต่ละอันนั่นเองนะคะ ก็คือเหมือนฟังก์ชันนี้เราต้องการให้เวลาสมมติตัวสิงโตน้อยเราขยับอย่างนี้นะคะ เราจะมี Function เพื่อสั่งให้แขนขยับ ขาขยับอย่างไร แยกเป็นส่วน ๆ นะคะ อย่างนี้เป็นต้นนะคะ นี่คือฟังก์ชันที่เราสร้างขึ้นมาเองนะคะ ทีนี้ก่อนจะเข้าสู่สิ่งอื่นใดนี่ เราก็ต้องรู้ก่อนว่าฟังก์ชันมีประโยชน์อย่างไร ประโยชน์ของฟังก์ชันนะคะ ที่ถ้าเราเป็น... ในภาษาคอมพิวเตอร์นี่ ก็คือโปรแกรมเมอร์หรือผู้เขียนโปรแกรมนี่นะคะ เราก็ต้องจะต้องรู้จักด้วยว่าฟังก์ชันมีประโยชน์อย่างไรนะคะ 1. ประโยชน์ข้อที่ 1 เลย ลดคำสั่งที่ซ้ำซ้อนกันในโปรแกรม ให้นึกถึงเหมือนเหมือนคำสั่งควบคุมการเดินการวิ่งอย่างนี้ แต่ตัวเกมเรา เด็ก ๆ นึกออกนะ ตัวเกมมันตัวเหมือนสมมติเหมือนในรูปนี่ มีตัวยูนิคอร์นนะคะ กับปลายูนิคอร์นนี่ มี 2 ตัวนี้ ถ้าเป็นสมัยก่อนเราจะต้องเขียนโปรแกรมสำหรับตัวนี้ 1 อัน แล้วก็เขียนควบคุมหมายถึงว่าจะให้มันเดินทางซ้ายทางขวาอย่างไร ก็ 1 คำสั่งควบคุมนะคะ แต่ถ้าเป็นแบบใหม่ เราเขียนฟังก์ชันว่าถ้าเรากดลูกศรไปทางขวานั้นหมายถึงเดิน เพราะฉะนั้น มันก็จะเอาไปใช้ได้กับ 2 ตัวเลย ตัวเลยก็คือเขียน 1 ครั้งเขียนแค่ครั้งเดียว แต่ตัวนี้ก็เรียกใช้ได้ ตัวยูนิคอร์นสีชมพูก็เรียกใช้ได้ ยูนิคอร์นตัวสีฟ้าก็เรียกใช้ได้นะคะ ก็คือลดการซ้ำซ้อนกันในโปรแกรม ไม่ต้องไปเขียนซ้ำเดิม ๆ หรือในกรณีที่ต้องการให้มันทำงานซ้ำ ๆ ที่เรียกว่า "Loop" นี่นะคะ บางทีนี่อาจจะต้อง ถ้าเป็นแต่ก่อน ก็คือทำลูปทุกอันของแต่ละตัวอย่างนี้ แต่ถ้าเป็นฟังก์ชันนี่ มันจะเขียนฟังก์ชัน Loop ไปเลยอย่างนี้นะคะ บอกให้รู้ว่าฟังก์ชันนี้ทำงานในการวนซ้ำอะไรก็แล้วแต่เงื่อนไขที่เรากำหนดเข้าไปนะคะ พิมพ์ผิด พิมพ์ถูกไปบ้างนะคะ นั่นคือข้อที่ 1 เขาต้องการลดความซ้ำซ้อน เมื่อลดการซ้ำซ้อนจะเกิดขึ้นโปรแกรมเราก็จะมีขนาดเล็ก นึกออกไหมคะ คือ เราไม่ต้องไปเขียนคำสั่งให้ทำแบบเดิม ๆ ซ้ำ ๆ กันหลาย ๆ ครั้ง เราทำเป็นฟังก์ชัน 1 อัน แต่สามารถไปเรียกใช้ในหลาย ๆ ส่วนอย่างนี้นะคะ โปรแกรมก็จะไม่ต้องมีขนาดใหญ่ขึ้น เพราะเด็ก ๆ นึกถึงนะ เวลาเราเขียนโปรแกรมเห็นไหมคะ 1 คำสั่งมันก็ 1 บรรทัดใช่ไหมคะ พอลดคำสั่งที่ซ้ำซ้อนจำนวนบรรทัดมันก็จะลดน้อยลงไปด้วยนะคะ อย่างนี้เป็นต้น 2. ช่วยอะไร ช่วยให้ผู้พัฒนาโปรแกรมปรับปรุงแก้ไขโปรแกรมได้รวดเร็ว เพราะอะไร เขาบอกว่าฟังก์ชันแต่ละตัวก็จะมีหน้าที่ที่ชัดเจน เช่น เหมือน print ใช่ไหมคะ print เป็น Function print เป็น Print สังเกตถ้าเป็นฟังก์ชันใน Python ถ้าเรียกใช้งานคำสั่งใดนะคะ เช่น print () แล้วมีวงเล็บ นี่บอกให้รู้เลย print นี่เป็นฟังก์ชันนะคะ นะคะ ก็คือบอกให้ print อะไร ในวงเล็บก็คือสิ่งที่เราต้องการให้ Print หรือแสดงออกมานั่นเองนะคะ มันจะหน้าที่ของมันชัดเจนว่าจะทำอะไร หน้าที่ของมันชัดเจนว่าให้ทำอะไร มันก็จะทำอย่างนั้นนะคะ เพียงแต่ว่าจะสั่งให้ทำอะไรแค่นั้นเองนะคะ เห็นไหมคะ เมื่อกี้บอกไปแล้ว เพราะลดความซ้ำซ้อนนี่ โปรแกรมมีขนาดกระทัดรัด นะคะ พอโปรแกรมมีขนาดกระทัดรัด ก็คือมีขนาดเล็กนี่ เมื่อคอมพิวเตอร์มันประมวลผลนะ มันก็จะทำได้เร็วขึ้นนะคะ ถ้าเด็ก ๆ เคยเล่นเกม เกมคอมพิวเตอร์ที่เหมือนพวกเกมออนไลน์บางอันนะ สังเกตว่าบางทีเอ๊ทำไมมันช้านั่นก็คือก่อนจะเข้าโปรแกรมได้ อะไรอย่างนี้นะคะ ก็เพราะโปรแกรม คือ ยิ่งโปรแกรมมีขนาดใหญ่นี่การประมวลผลมันก็ช้า ถ้าไม่นึกถึงเกมก็ให้นึกถึงโปรแกรมที่เราใช้งาน นิยมใช้กันบ่อย ๆ ระหว่าง Photoshop ก็ illustrator อย่างนี้ โปรแกรม Photoshop เป็นโปรแกรมที่มีขนาดใหญ่นะคะ เวลาทำงานนี่ มันจะประมวลผล เช่น เหมือนสั่ง Export ทีหนึ่งนี่ บางทีประมวลผลช้ามากเลย ยิ่งถ้าเครื่องคุณสมบัติค่อนข้างน้อยนี่ยิ่งทำให้การประมวลผลช้าเข้าไปอีกอย่างนี้นะคะ เพราะตัวโปรแกรมเขามีขนาดใหญ่ เพราะฉะนั้น โปรแกรมยิ่งเล็ก ความเร็วในการประมวลผลก็จะยิ่งเร็วขึ้นนะคะ เห็นไหม และมาสู่ที่ข้อที่ 4 ที่บอกไว้ว่าฟังก์ชันนำกลับมาใช้ได้หลาย ๆ ครั้ง ก็คือเราสร้างไว้ 1 ครึ้งเราเอาไปใช้กับเจ้ายูนิคอร์นก็ได้ ใช้กับปลายูนิคอร์นก็ได้ ใช้กับยูนิคอร์นสีชมพูหรือยูนิคอร์นสีฟ้าอย่างนี้นะคะ หรือเหมือนที่ถ้าเป็นฟังก์ชันมาตรฐานเอาเก็บไว้ใน Library ใช่ไหม พอเวลาจะใช้ก็เรียกใช้ได้ อย่างนี้นะคะ ข้อดีหรือประโยชน์อีกอย่างของฟังก์ชันก็คือป้องกันข้อผิดพลาด เพราะอะไร เพราะโดยปกติการเขียนฟังก์ชันเขาก็จะเขียนเพื่อเน้นการทำ บอกแล้วว่ามันจะเน้นการทำงานอย่างใดอย่างหนึ่งให้ชัดเจนไปเลยนะคะ เพราะฉะนั้น โอกาสที่มันผิดพลาดมันก็จะน้อย เพราะเราจะเขียนเพื่อเหมือนบอกให้ลูกศรที่ชี้ไปทางขวาหรือไปทางขวาหมายถึงเดินไปข้างหน้าอย่างนี้ ถ้ากดลูกศรนี้ต้องเดินข้างหน้าอย่างเดียวเท่านั้น ก็คือมันโดนจำเพาะเจาะจงมาแล้วชัดเจน เพื่อให้ลูกศรไปข้างหน้า ถ้ากดแล้วมันไปข้างหลังก็แสดงว่าผิด เพราะแก้แล้วถูกนี้ พอกดลูกศรนี้กี่ครั้งมันก็จะไปข้างหน้าอย่างเดียวเท่านั้นนะคะ ประโยชน์ต่อมา หาข้อผิดพลาดของโปรแกรมได้เร็วขึ้น เพราะอะไร เพราะว่าเวลาโปรแกรมมันทำงานน่ะค่ะ มันก็จะไปทดสอบเวลาจะทดสอบน่ะค่ะ เขาจะใช้วิธีการไปทดสอบตามฟังก์ชันนึกออกนะ เหมือนเราจะเทสต์ว่าเรากดปุ่มลูกศรชี้ไปข้างหน้า แล้วมันไปข้างหน้าจริงไหมนี่นะคะ พอ Test แล้วจะเห็นใช่ไหมคะ ถ้าสั่งแล้วมันไม่ไปข้างหน้า แสดงว่าตอนเราเขียนน่ะเราเขียนไม่ถูก เราก็ต้องแก้ไขใช่ไหมให้ถูกต้องอย่างนี้นะคะ และประโยชน์ข้อสุดท้าย ก็คือฟังก์ชันมันจะสามารถทำงานได้อย่างอิสระของมันเองนะคะ แล้วสามารถเอาไป... คือเหมือนที่บอกน่ะค่ะ พออิสระจะเรียกใช้ตรงไหนก็ได้ จุดใดก็ได้ มีความเป็นอิสระนะคะ เพราะฉะนั้น ก็นำไปต่อยอดหรือพัฒนาในอนาคตได้ด้วยนะคะ ก็คือเราสามารถดูได้นะคะ เพราะเหมือนใน Python นี่ โดยส่วนใหญ่นี่มันจะเป็นแบบ แบบ Opensourse เข้ามาดูได้เผยแพร่ได้นะคะ แล้วก็เอาไปพัฒนาต่อได้นะคะ ก็คือช่วยกัน แบ่งปันกันในลักษณะนี้นะคะ สงสัยจะกดเร็วไปหน่อย มือไวทีนี้เมื่อเรารู้ประโยชน์แล้ว สิ่งที่เราจะต้องรู้อีกอย่าง ก็คือก่อนที่เราจะเขียนนี่รู้ก่อนว่ามันจะมีวิธีการที่เรียกว่า "การประกาศฟังก์ชัน" Defining a function คืออะไร การประกาศฟังก์ชันคืออะไร เรามาดูกันนะคะ การประกาศฟังก์ชัน ก็คือโปรแกรมนะคะ รู้ว่าตอนนี้เราจะสร้างฟังก์ชันแล้ว เพราะฉะนั้น ข้อที่ 1 เวลาเราจะประกาศฟังก์ชันนี่เราจะต้องพิมพ์นะคะ พิมพ์คำว่า "def" def ซึ่งมาจากเมื่อกี้นี้นะคะ มือไวไปหน่อย definition definong มาจากคำว่า "Definition" นั่นเองนะคะ แต่เราจะเรียนย่อ ๆ มาก็คือเขียน D-e-f ใช้เขียนไม่ได้สิ เราจะต้องพิมพ์ด้วยตัวพิมพ์เล็กนะคะ def ใช้ตัวเล็กนะคะ เวลาจะประกาศฟังก์ชันนะคะ นี่ จะไม่ใช้ตัวพิมพ์ใหญ่นะคะ ใช้ def ตัวพิมพ์เล็ก แล้วทำอะไรต่อ ก็จะพิมพ์ชื่อฟังก์ชันก็คือเราจะต้องเป็นคนตั้ง ตั้งชื่อฟังก์ชัน ชื่อฟังก์ชันจะตั้งชื่อเหมือนชื่อตัวแปร นึกออกนะ หลักการง่าย ๆ เพราะบอกแล้วว่าถ้าเราไม่อยากสับสนกับ class นะคะ เพราะ class นี่ มันจะโดนระบุว่าเวลาตั้งชื่อ class นี่ ตัวอักษรจะต้อง... ตัวแรกอย่างน้อยใน class นี่ ตัวอักษรตัวแรกจะต้องเป็นตัวพิมพ์ใหญ่ แต่ถ้าเราตั้งชื่อตัวแปรหรือชื่อฟังก์ชัน แนะนำว่าให้ใช้ตัวพิมพ์เล็กนะคะ เราจะได้ไม่ไปสับสนกับเวลาเรียกใช้งาน class และจะตามด้วยเห็นไหมคะ พอใส่พอตั้งชื่อให้เสร็จ ใส่วงเล็บ วงเล็บเปิด วงเล็บปิด แล้วก็ปิดท้ายด้วย Colon นะคะ เหมือนใน... เหมือนตัวนี้ เห็นไหม เหมือนตัวอย่างนี้นะคะ ตัวอย่างในตัวอย่างพิมพ์คำว่า "def" นะคะ แล้วชื่อฟังก์ชันใช้ว่า myfunc f-u-n-c ไม่ใช่ fun นะคะ c นี่ มาจาก แล้วก็ใส่วงเล็บเปิดวงเล็บปิดแล้วก็ตามด้วยเครื่องหมายโคลอน แล้วทีนี้ ข้อที่ 2 บอกฟังก์ชันมี Parameters Parameters คืออะไร ก็คือค่า เช่น ถ้าใส่มันก็จะอยู่ในวงเล็บนั่นเองพารามิเตอร์จะอยู่ตรงนี้ ให้ดูตัวอย่างในข้อที่ 2 นะคะ para1, para2 นี่ไม่ใช่ยาพารานะ แต่หมายถึง Parameters นั่นเอง Parameters ตัวที่ 1 พารามิเตอร์ตัวที่ 2 นะคะ Parameters ตัวนี้ อาจจะหมายถึงตัวแปรก็ได้นะคะ หรืออะไรล่ะ เช่น เหมือนค่า x ค่า y เหมือนที่เรากำหนดนะคะ post x, post y จุดตำแหน่งในแกน x แล้วก็จุดในแกน y นะคะ อย่างนี้เป็นต้น นี่คือค่าพารามิเตอร์นะคะ แต่ Parameters ใส่หรือไม่ใส่มันแล้วแต่เรา ซึ่งเป็นคนเขียนนะคะ ว่าถ้าใส่นี่หมายถึงไปเรียกใช้นะคะ อย่างนี้เป็นต้น 3. ข้อที่ 3 ในการประกาศฟังก์ชันนี่ Python บอกว่าเขาอนุญาตให้คำสั่งแรกในฟังก์ชันเป็นคำอธิบายโปรแรกมได้ ให้ดูในตัวอย่างนะคะ ตัวอย่างที่ประโยคที่ต่อจากท้ายเครื่องหมาย Colon เห็นไหมคะ This Documenttstion คือ โดยปกติถ้าเราเขียนคำอธิบายโปรแกรมนะเด็ก ๆ เราต้องใส่อะไรนะ ใส่ # เครื่องหมาย Sharp แล้วมันจะอยู่... แล้วไอ้ตัวที่เราใส่คำอธิบายมันก็จะเป็นตัวสีเทา ๆ แต่ถ้าอยู่ในฟังก์ชันน่ะค่ะ แต่ถ้าอยู่ในฟังก์ชันเราใช้เครื่องหมายคำพูด แล้วตามด้วยข้อความอย่างนี้ เห็นไหมคะ มันพอหลังจาก Colon เสร็จ ใช่ไหม ตามหลักก็คือเราจะกด Enter ลงมานะ คือ รูปประโยคมันจะไม่... ใน Python ให้เด็ก ๆ นึกออกนะ มันจะไม่ยาวเป็นพืทเดียว พอจบโคลอนน่ะค่ะ พอจบ This statement นี่ มันจะขึ้นบรรทัดใหม่ คำสั่งที่ 1 นี่คือคำสั่งแรก แต่มันจะไม่เป็นคำสั่ง ในฟังก์ชันมันจะหมายถึงเป็นคำอธิบายโปรแกรม ตัวนี้ใส่หรือไม่ใส่ก็ได้ไอ้ตัวคำอธิบายโปรแกรมในบรรทัดแรกนี่ ก็คือถ้าใส่จะต้องมีเครื่องหมายคำพูดนะคะ Double qoutหรือ single quote Double quoat กับ Single quatบอกไว้ พิมพ์ไว้ พิมพ์ไว้ เพื่อให้รู้ว่าตัวนี้ในฟังก์ชันนี่ตัวนี้คือคำอธิบายโปรแกรมนะคะ แล้วตามด้วยบรรทัดที่ 3 Statement นั่นก็คือกลุ่มคำสั่งนะคะ กลุ่มคำสั่งที่เราจะให้ฟังก์ชันนี้ทำงาน เห็นไหมคะ ในข้อที่ 4 บอกว่าคำสั่งในsingle quotในฟังก์ชันจะเริ่มต้นหลังเครื่องหมายโคลอนเห็นไหม เพราะฉะนั้น เวลาพิมพ์ฟังก์ชันอย่าลืมนะคะ พิมพ์ชื่อฟังก์ชัน ประกาศตัวฟังก์ชันเสร็จ เด็ก ๆ จะต้องใส่เครื่องหมาย : จะมีเฉพาะฟังก์ชันที่มีเครื่องหมาย Colon และส่วนในข้อที่ 5 ฟังก์ชันจะมีตัวคำสั่งที่ต่อจาก Statemente น่ะค่ะ แต่มีหรือไม่มีก็ได้ ก็คือ return return นั่นก็คือคำสั่งในการส่งค่าหรือส่ง Object ไปยังสิ่งที่เราเรียกมาน่ะ แต่ถ้าไม่มี ไม่มีคำสั่ง return นี่นะคะ ก็คือถ้าเราไม่พิมพ์คำสั่ง Return ท้ายคำสั่ง Statement นะคะ Python มันจะถือว่าเราส่งกลับค่าที่เป็น None ก็คือค่าว่างเปล่านั้นเองนะคะ ตัวคำสั่ง return นี่มีหรือไม่มีก็ได้ ก็คือพิมพ์ มีการส่งค่าเราถึงพิมพ์แต่ถ้าไม่มีการส่งค่าเราก็ไม่ต้องพิมพ์นะคะ คำสั่งในข้อที่ 5 return นี่นะคะ ทีนี้ เราจะต้องรู้ก่อนว่ารูปแบบในการประกาศฟังก์ชันนี่มันเป็นอย่างไร เห็นไหมคะ ในรูปนี้นะคะ เห็นไหมมีคำว่า... ในส่วนที่... อ่าว ไม่ยอมให้เราใช้ปากกาสะอย่างนั้น นั่นก็คือในส่วนนี้นะคะเด็ก ๆ นี่ก็คือรูปแบบของมันเห็นไหมคะ จะต้องมีคำว่า เราจะต้องพิมพ์คำว่า "d-e-f ซึ่งย่อมาจาก ก็คือการประกาศ แล้วก็ตามด้วยชื่อฟังก์ชันนะคะ อันนี้เราตั้งเอง แต่ให้นึกถึงบอกแล้วว่าชื่อฟังก์ชันกับตัวแปรนี่ ชื่อตัวแปรนี่ วิธีการประกาศหรือกำหนดชื่อนี่ก็เหมือนกัน 1. ใช้ตัวพิมพ์เล็กเท่านั้นใช่ไหมนะคะ 2. ต้องไม่เป็นคำสงวน คำสงวนเราก็ค้นได้ในภาษา Python นะ ก็คือต้องไม่ไปชื่อที่ซ้ำกับกลุ่มคำสงวนจะใช้ไม่ได้นะคะ แล้วก็เมื่อใส่ชื่อฟังก์ชันเสร็จก็ตามด้วยวงเล็บส่วนพารามิเตอร์ เหมือนที่บอก ใส่ได้ ไม่เหมือนกันนะคะ แล้วก็ปิดวงเล็บ แล้วก็จบส่วนของการประกาศข้างบนนี่ด้วย : แล้วบรรทัดต่อมานะคะ ก่อนจะขึ้นบรรทัดใหม่นี่ จะต้อง Tab เข้าไป 1 Tab เสมอนะคะ แต่พอเวลาเราใช้ Sublime น่ะ พอเราพิมพ์ def นะคะ เดี๋ยวมันจะขึ้นว่า def function หรือเปล่า เวลาเราเลือกฟังก์ชันน่ะ โครงสร้างของรูปแบบฟังก์ชันมันจะขึ้นมา ก็จะมี colon ปิด มันก็จะมีส่วนที่ที่เป็นตัวสีชมพูน่ะ ที่เราเคยพิมพ์นะคะ ก็คือตรงส่วนที่เรา... หายไปไหน เมาส์หายไปไหน เมาส์เรา... เจอแล้ว กลุ่มของคำสั่งที่จะให้ทำงานในฟังก์ชัน ซึ่งหมายถึง statements นะคะ แต่ return บอกแล้วว่าใส่หรือไม่ใส่ก็ได้ จะใส่ในกรณีที่มีการคืนค่า มีการระบุที่จะส่งคืนใช่ไหมคะ หรือถ้า ไม่ใส่ โปรแกรมมันก็จะ... หมายถึงค่าที่ส่งกลับไปนั้นน่ะ ถ้าไม่ใส่ เพราะฉะนั้น เวลาเราจะสร้างฟังก์ชัน จำให้ดีนะคะ ต้องพิมพ์ def ตัวเล็กนะ แแล้วก็ตามด้วยชื่อฟังก์ชันก็ใช้ตัวเล็กเหมือนกันนะคะ แล้วจะต้องมีวงเล็บ แล้วก็ตามด้วย Colon แล้วก็ตามด้วยคำสั่งที่จะมี ไม่ได้มีแค่บรรทัดเดียวนะคะเด็ก ๆ เห็นไหมที่เขียนให้ดูในรูปแบบเป็นกลุ่มของคำสั่ง เพราะฉะนั้น คำสั่งในฟังก์ชันอาจจะมีมากกว่า 1 ก็ได้นะคะ ตัวนี้เราจะไปเห็นเมื่อเราเริ่มเขียนนะคะ เมื่อเราสร้างฟังก์ชันเสร็จแล้วนะคะ เราจะต้องเรียกใช้งานมันนะคะ ถ้าสร้างแล้วไม่เรียกมันก็จะไม่ทำงานนะคะ เมื่อเราใช้ฟังก์ชัน หรือ Calling a function นี่ มีอยู่ด้วยกัน 3 วิธีนะคะ 3 วิธีในการเรียกใช้ เดี๋ยวเรามาดูกันว่าวิธีเรียกใช้ทั้ง 3 วิธีนี้มีอะไรบ้าง 1. นะคะ การเรียกฟังก์ชันจาก Python Shell นะคะ ก็คือเรียกมาจาก Library น่ะ ก็คือเป็นฟังก์ชันที่อะไรนะคะ เป็นฟังก์ชันแบบฟังก์ชันมาตรฐานนั่นเอง เช่น เช่นอะไร print เห็นไหมนะคะ หรือตัวนี้นะคะ ใช้... จาก Python shell นี่ เราทำการเรียกใช้ โดยเราจะต้องเปิด... หมุนก่อน เด็ก ๆ ไม่ได้ใช้ Python shell นี่น่ะ มันก็เหมือน Sublime แต่ Python shell นี่ มันจะพิมพ์ผ่าน promp น่ะค่ะ นะ มันจะเหมือนตอนเราเรียกใช้ cmd Command น่ะ cmd เช่น ก็คือพิมพ์ def myfunctiสร้างฟังก์ชันขึ้นมาเสร็จแล้วสั่งนะคะ Defind dunction นี่ ประกาศฟังก์ชันเสร็จแล้ว print ("Testing function") ทำให้สั่งให้คำสั่ง print นี่พิมพ์คำว่า Testing function ทีนี้เวลาเรียกใช้เห็นไหมคะ เราจะพิมพ์ชื่อคำสั่งนั้นแล้วตามด้วยวงเล็บนะคะ ก็คือชื่อฟังก์ชันในที่นี้ ที่เราประกาศใน... เมาส์หาย ใน Python shell หาไลน์มายไม่เจออยู่นี่นะคะ ก็คือตัวนี้ เวลาเรียกใช้เราก็จะเรียกชื่อมัน แล้วต้องใส่วงเล็บเปิด-ปิดด้วย ก็คือพอเรียกใช้ปุ๊บสิ่งที่ฟังก์ชันนั้นต้องทำงาน ก็คือทำงานตามคำสั่งที่อยู่ในฟังก์ชัน นั่นก็คือ print เห็นไหมคะ print อะไร print ("Testing function") เพราะใน Python shell นี่ พอกด Enter ปุ๊บนี่ พอเรียกใช้ my function ตรงที่ทำให้ไฮท์ไลท์สีเหลือง ๆ ไว้ Testing function พอจบประโยคนั้นะคะ Python ประมวลผลออกมามันจะพิมพ์คำว่า Testing function ขึ้นมาให้เพราะอะไร เพราะนาย myfunc myfunc อันนี้ ฟังก์ชันนี้ ไอ้ myfunc (): ในตัวฟังก์ชันมันบอกให้ print นะคะ print คำว่า "Testing function" ออกมานั่นเองนะคะ เพราะฉะนั้น ผลลัพธ์ที่ออกมาก็จะได้ตัวคำว่า "Testing function ออกมา Testing function") นะคะ นี่คือการเรียกผ่าน Python shell นะคะ เรียกใช้งานฟังก์ชัน มาดูแบบที่ 2 เรียกภายในโปรแกรมเดียวกัน ให้ดูจากโปรแกรมตัวอย่างนะคะ ในภาพโปรแกรมตัวอย่าง อันนี้คือภายในโปรแกรมนี่นะคะ ให้ดูที่บรรทัดที่ 2 เราประกาศ เห็นไหมคะ ประกาศฟังก์ชันชื่อ print ในวงเล็บพารามิเตอร์ก็คือ s-t-r str น่าจะมาจาก string นั่นเองนะคะ เห็นไหมคะ พอวงเล็บเปิดวงเล็บปิดแล้วใส่เครื่องหมายโคลอนปุ๊บนี่ บรรทัดต่อมาคำสั่งแรก เป็นคำอธิบาย เขาก็เลยใส่คำอธิบายบอกว่า This prints a passed in to this function เห็นไหมคะ เป็นการ print สิ่งผ่านฟังก์ชันนี้นะคะ แล้วก็เรียกใช้งาน... แล้วก็พิมพ์คำสั่ง print แล้วตามด้วย string นะคะ เสร็จแล้ว return บรรทัดที่ 7 กับ 8 ดูนะคะ ก่อนจะไอ้นี่ มีคำอธิบายไว้ก่อนในบรรทัดที่ 6 บอกว่า now you can call printme function เราประกาศฟังก์ชันเสร็จแล้วตรงส่วนนี้นะคะ เสร็จแล้วพอหลังจากนั้นให้เรียกใช้ฟังก์ชัน printme ได้ บรรทัดที่ 7 ก็เลยพิมพ์ pirntme แล้วในวงเล็บนี่ นั่นก็คือค่าพารามิเตอร์ ที่ระบุให้ฟังก์ชัน printme ก็คือ Sting เพราะฉะนั้น Sting ในความหมายของ Python ก็คือข้อความนั่นเอง ที่อยู่ข้างในที่เป็นข้อความเราก็จะใส่ " หรือ ' ก็ได้นะคะ เพราะฉะนั้น ใน printme อันที่ 1 มันก็เลยใส่ str เข้าไปว่า I'm first call printเรียกใช้ printme อีกครั้แต่ Sting อันที่ 2 คือ Again secound call to the same รู้สึกรูปมันจะตกไปอยู่ตรง ให้เด็ก ๆ ดูที่ Output ค่าที่ออกมาก็คือมันจะพิมพ์คำว่า... ตัวแรกน่ะค่ะ มันจะพิมพ์อันนี้ออกมา นะคะ แล้วก็พิมพ์บรรทัดนี้ออกมานะคะ เป็น 2 บรรทัดนะคะ จะพิมพ์ 2 บรรทัดนี้ออกมา นี่คือเป็นการเรียกใช้จากภายในโปรแกรมเดียวกัน ก็คือต้องประกาศก่อนนะคะ แล้วค่อยเรียกใช้นะคะ ถ้าเขาบอกว่าแต่วิธีการนี้มีข้อห้ามว่าไม่ให้ผู้เขียนประกาศฟังก์ชันหลังคำสั่งเรียกใช้งานนะคะ ก็คือถ้าเราไปประกาศฟังก์ชันไว้ด้านล่างไอ้ตัวนี้ ด้านล่างบรรทัด ก็คือบรรทัดที่เราจะใช้งานฟังก์ชัน ก็คือ 7 กับ 8 ใช่หรือเปล่าคะ เขาบอกว่าห้าม เพราะฉะนั้น คือ เราจะต้องประกาศฟังก์ชันก่อนที่เราจะเรียกใช้ ถ้ามาประกาศไว้ทีหลังแล้วมาเรียกนี่มันจะไม่รู้นะคะ มันจะมองไม่เห็นนั่นเองนะคะ และวิธีการเรียกแบบที่ 3 เรียกใช้จากโปรแกรมอื่น ก็คือเรียกมาจาก Library นั่นเอง โดยใช้คำว่า "import" ตอนพิมพ์คิดว่าพิมพ์ตัวเล็ก นี่น่าจะตอนแปรงฟอนต์ นะคะ เพราะโดยปกติคำสั่ง import จะเป็นตัวเล็กนะคะ เหมือนที่เรา import แล้วตามด้วย import pygsameimport sys อะไรพวกนี้นะคะ ก็คือเราไปเรียกฟังก์ชันที่ไปอยู่ที่อื่น หรือที่สร้างไว้แล้วน่ะนะคะ มาใช้นั่นเองนะคะ นะคะ ในเรื่องของฟังก์ชันนะคะ ที่เราเรียนกันในวันนี้ เราเริ่มได้ใช้ไปแล้วใน class น่ะ แต่ใน class พอไปเขียนใน class มันจะกลายเป็น Method นะคะ แต่รูปแบบเหมือนกัน ก็คือต้องประกาศด้วย... ก็คือต้องมี def ก่อน แล้วก็ตามด้วยชื่อฟังก์ชันนะคะ ก็คือต้องยึดรูปแบบอย่างนี้ แต่การเรียกไม่เหมือนกันแค่นั้นเองนะคะ ตามการประกาศฟังก์ชัน ก็คือมี d-e-f นะคะ แล้วก็มีชื่อฟังก์ชันแล้วก็มีชื่อฟังก์ชัน ส่วนที่ 1, ส่วนที่ 2, ส่วนที่ 3 นะคะ อันนี้คือส่วนที่ 4 นี่ ต้องมี 4 ส่วนอย่างนี้นะคะ เหมือนในตัวอย่าง เหมือนในตัวอย่างตอนเรียกใน... ประกาสเสียก่อนแล้วมีเงื่อนไขว่าว่าเราจะต้องประกาศฟังก์ชันก่อนนะคะ ถึงจะเรียกใช้มันได้ ถ้ายังไม่ประกาศแล้วอยู่ ๆ มาเรียก printme เลย ไม่ได้นะคะ มันจะไม่รู้จักมันจะหาไม่เห็นนั่นเอง มันจะมองไม่เห็นว่ามีประกาศนะคะ เนื่องจากเป็นการเรียนแบบออนไลน์เราจะไม่เห็นจากวิธีการเขียนโค้ดจริง ๆ ชัดเจนนะคะ แล้วพอก็หลังวันที่ 17 ของเราเรียนวันที่ 18 ซึ่งเป็นวันอังคาร อาทิตย์นี้ยังไม่มีประกาศอะไรเปลี่ยนแปลงก็สัปดาห์นะคะ เราสามารถเข้ามาเรียนใน class ได้ตามปกติแต่ถ้ามีประกาศมา เด็ก ๆ รอฟังประกาศจากพี่ ๆ ด้วยนะคะ ว่ายังเป็นเรียนแบบออนไลน์ไหมหรือเปลี่ยนแล้วให้เข้ามาเรียนแบบ Onsite ได้อย่างนี้นะคะ เรารอดูประกาศกันอีกทีหนึ่งนะคะ เรามาเขียนโปรแกรมกันต่อ โปรแกรมเราเลยยังไม่ได้ไปต่อนะคะ เราเพิ่งได้เจ้าตัว Hero หรือตัวเกมเรากระดุ๊กกระดิ๊กแค่นั้น มันยังไม่เดินเลยใช่ไหมคะ เรากำลังจะพาเขาเดินแล้วนะคะ เดี๋ยวหลังจากภายในอาทิตย์นี้นะคะ คาดว่าอาทิตย์นี้เขาน่าจะประกาศ มีใครสงสัยหรืออยากสอบถามอะไรเพิ่มเติมไหมเด็ก ๆ ถามได้นะคะ (พี่อี๊ด) ไม่เห็นใครเลยค่ะอาจารย์ (อาจารย์สุธิรา) ไปเปิดไอ้นี่กันแล้ว บ่ายแล้ว เด็ก ๆ เมื่อเช้าได้เรียนกันไหม (พี่อี๊ด) เรียนค่ะ (อาจารย์สุธิรา) น่าจะเป็นเหมือนกันว่ารอดู รอฟังนะคะ ในสัปดาห์ถัดไปเหมือนกัน อย่างนั้นถ้าไม่มีใครสงสัย สัปดาห์นี้เราจะพอแค่นี้นะเด็ก ๆ มีเรียนบ่ายวิชาทฤษฎียิ่งชวนง่วงนอนมากเลย มันไม่เหมือนตอนเราเรียนในห้อง เราพาโค้ด ทุกคนก็จะกลัวโค้ดไม่ทัน ก็จะไม่มีอาการง่วงหนาวหาวนอน แต่เรียนออนไลน์นี่ พอไม่เปิดกล้องแอบหลับเสียแล้วก็ไม่รู้ แอบนอนกันแล้วก็ไม่รู้นะ เงียบกริ๊บเลย ยิ่งอยู่สกล (นคร) อากาศเริ่มกลับมาเย็นอีกแล้ว อุตส่าห์ว่าจะอุ่นขึ้นสักหน่อย เมื่อเช้ายังใส่เสื้อกันหนาวอยู่นะคะ อย่างนั้นถ้าไม่มีข้อสงสัยนะคะ อย่างนั้นเราจะจบการเรียนของวันนี้แค่นี้ สวัสดีค่ะทุก ๆ คน (นักศึกษาชาย) อาจารย์สวัสดีครับ ไปนะครับ [สิ้นสุดการถอดความ]