--- title: ทดสอบ PE หลักการเขียนโปรแกรม (3) subtitle: date: วันอังคารที่ 13 กันยายน 2565 เวลา 10.31 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) (ล่าม) ฮัลโหลครับ ฝั่งล่ามไหมครับ ผม (อาจารย์สุธิรา) ได้ยินค่ะ (ล่าม) โอเคครับ (อาจารย์สุธิรา) สวัสดีค่ะ พี่ล่ามไม่ได้ยินเรานะ (ล่าม) ได้ยินครับ ได้ยินครับ (อาจารย์สุธิรา) ได้ยินไหม ได้ยินนะคะ โอเค นึกว่าไม่ได้ยินนะคะ สำหรับวันนี้นะคะเรื่องเกี่ยวกับ ในสัปดาห์นี้จะเป็นเรื่องเกี่ยวกับฟังก์ชันนะใน Python เราจะต้องมาเรียนเบื้องต้นนี่ ก็คือต้องมารู้จักสิ่งที่เรียกว่า Function ก่อนนะคะ นะคะ หัวข้อที่เราจะเรียนในสัปดาห์นี้นะคะ จะเป็นหัวข้อสุดท้ายของปีนี้ของเทอมนี้นะคะ ภาคเรียนนี้ ก็คือฟังก์ชันวันนี้เราจะพูดถึงการนะคะ การเรียกใช้งานแล้วก็พูดถึงDefault Argument Values แล้วก็ Keyword Argument นะคะ อ้าวทำไมหน้าจอไม่ขึ้นอีกและ...โอเคนะคะ ก่อนอื่นก่อนจะรู้วิธีการสร้างการเลือกใช้งานนี่ เราก็ต้องรู้ก่อนว่าฟังก์ชันมันคืออะไร นะคะ คือ ถ้าพูดถึงโดยทั่วไปนะคะ ก็คือถ้าเราเป็นโปรแกรมเมอร์หรือในวิธีการเขียนโปรแกรมคอมพิวเตอร์เนี่ย ฟังก์ชันมันจะเป็นคำสั่งพิเศษที่ให้ทำงานเฉพาะสิ่งใดสิ่งหนึ่งนะคะ ซึ่งแต่เดิมนี่ฟังก์ชันมันจะเป็นที่เขาพัฒนาไว้แล้วก็มี แต่ใน Python นะคะ ในส่วนของภาษา Python ฟังก์ชันจะเป็นโค้ด หรือโปรแกรมที่เราสร้างขึ้นได้เองนะคะ เพื่อเอาไปใช้กับ...เหมือนตั้งขึ้นมาว่าฟังก์ชันนี้จะเอาไปใช้ทำอะไรนะคะ เช่นเหมือนบางครั้งนี่ การคำนวณบางอย่างไม่จำเป็นต้องไปเขียนโค้ดใหม่ทุกครั้ง เราก็เลยสร้างฟังก์ชันไว้เลย แล้วไปเรียกฟังก์ชันนี้มาเพื่อให้มันทำการคำนวณค่านี้ให้อย่างนี้นะคะ นั่นคือจุดประสงค์จะนำไปใช้ในสิ่งใดสิ่งหนึ่งเป็นการเฉพาะ โดยบอกแล้วว่าในสัปดาห์นี้เราจะสร้างขึ้นมาใช้งานเองนะคะ แล้วเมื่อสร้างเสร็จแล้วนี่จะต้องรู้ว่ามันจะต้องเรียกฟังก์ชันที่เราใช้งานนี่จะถูกเรียกมาใช้โดยวิธีการใดหรือเรียกใช้อย่างไรนะคะ แล้วก็จะพูดถึง Default Argument ด้วยว่ามันคืออะไร แล้วก็ Keyword Argument ด้วยว่ามันคืออะไร นะคะ ทีนี้ก็จะเริ่มเข้าสู่กระบวนการที่เราจะต้องทำก็คือ เมื่อเราจะทำฟังกชันขึ้นมา เราจะสร้างมันอย่างไรนะคะ การสร้างฟังก์ชันใน Python นะคะ ใน Python เราสามารถสร้างขึ้นเองได้นะคะ โดยวิธีการนี้นะคะ จะเป็นให้นึกถึงว่าเราจะเป็นคนเขียนโค้ด ที่ที่บอกแล้วว่ามันสามารถทำงานสิ่งใดสิ่งหนึ่งได้แล้วเอาไปเรียกใช้ซ้ำได้อีกนะคะ จะเรียกว่า"การนำโค้ดนี้กลับมาใช้ซ้ำได้" นี้ว่า "Code Reuse" ใช้ code นี้ซ้ำได้ถ้าจะทำฟังก์ชันมาใช้งาน มันควรเป็นตัวที่เหมือนสามารถเรียกใช้ได้บ่อย ๆ เช่น สมมตินะคะ เราจะหาค่า VAT นี่คือ ถ้ามาเขียนโค้ด เราต้องมานั่งเขียนว่า VAT เกิดจากการที่เอา 7 เปอร์เซ็นต์น่ะค่ะ VAT ก็คือ 7 เปอร์เซ็นต์ใช่ไหมคะ การที่เอาราคาสินค้ามาคูณกับปริมาณที่ 7 เปอร์เซ็นต์เท่ากับเท่าไหร่ แล้วจะทำอย่างไรเราจะให้รู้ว่าตัวนี้เป็นค่า VAT เราก็อาจจะสร้างฟังก์ชันสำหรับการคิด VAT ขึ้นมาอย่างนี้นะคะ แล้วพอครั้งหน้าจะใช้ก็เอาไปใช้ได้ หรืออย่างอื่น หรือคนอื่นจะเอาไปใช้ได้แต่ต้องรู้ด้วยนะว่ามีฟังก์ชันนี้อยู่ อย่างนี้นะคะ ทีนี้ขั้นตอนในการสร้างนะคะ ก็คือมันจะมีรูปแบบ เราจะต้องเขียนโค้ดน่ะค่ะ เขียนโค้ดให้ฟังก์ชันเราโดยตามรูปแบบในที่เห็นนะคะ จะต้องมีคำว่า "def" ที่มาจากคำว่า definition นั่นก็คือการประกาศตัวแปรนะคะ บอกให้รู้ว่านี่นะ ฉันจะประกาศจะประกาศค่า ประกาศฟังก์ชัน ไม่ใช่ประกาศตัวแปร พูดผิดแล้วตามด้วย function name เราต้องพิมพ์ d-e-f พิมพ์ด้วยตัวเล็กเสมอ ถึงได้ทำเป็นสีแดงให้เห็นว่าคำว่า def นะคะ ตัวเล็กเท่านั้นนะคะ ไม่ใช่พิมพ์ด้วยตัวพิมพ์ใหญ่ นึกออกนะนะคะ ก็คือทุกครั้งที่พอจะมีการสร้างฟังก์ชันเราต้องพิมพ์คำว่า def นี้เป็นตัวแรกนะคะ แล้วตามด้วย function_name  function name นั่นก็คือชื่อ ชื่อของฟังก์ชันที่เราจะไว้เรียกใช้ในครั้งต่อไป เราจะเป็นคนตั้งเองให้นึกถึง function name ตั้งชื่อให้ตัวแปร แต่อันนี้เป็นการตั้งชื่อฟังก์ชันนี้คือฟังก์ชันอะไรนะคะ เสร็จแล้วก็จะมีวงเล็บ พอใส่คำว่า "def" แล้วก็ใส่ชื่อฟังก์ชันเราต้องต้องพิมพ์วงเล็บตามเสมอนะคะ แต่ถ้าเราพิมพ์ใน Colab ตัววงเล็บนี้จะขึ้นมานะคะ แล้วส่วนข้างในนี่นะคะ เขาบอกว่ามันเป็นการกำหนดค่า Paramiter พารามิเตอร์ถ้าเป็นเขียนโค้ดปกติ มันก็จะหมายถึงตัวแปรนะคะ แต่ในฟังก์ชันนี่เราจะเรียกว่า "พารามิเตอร์" เพื่อไว้สำหรับอะไรล่ะ เขาเรียกนี่ เขาบอกว่าพารามิเตอร์ของฟังก์ชันนี่มีจำนวนเท่าไรก็ได้ ก็คือในฟังก์ชันนี้เราจะมีการเก็บค่าของอะไรบ้าง พารามิเตอร์ตัวนั้นก็จะเป็นตัวเก็บให้เรา สมมตินะคะ สมมติเราต้องการตำนวณหาค่าพื้นที่วงกลมอย่างนี้นะคะ ค่าพารามิเตอร์ที่จะเก็บก็อาจจะมีค่าของรัศมีวงกลมหรือมีค่าของอะไรนะเส้นรอบวงอะไรอย่างนี้เข้ามานะคะ นั่นก็คือค่าพารามิเตอร์ที่เราจะไว้เก็บข้อมูลในฟังก์ชันนี้นะคะ เสร็จแล้วเมื่อพิมพ์ function name ใส่ค่าพารามิเตอร์อะไรเสร็จ เราจะปิดคำสั่งการประกาศฟังก์ชันด้วยโคลอน (:) เสมอนะคะ สังเกตนะคะ เมื่อใดที่ตัวนั้นจะต้องปิดด้วยเสมอ แล้วขึ้นบรรทัดใหม่มันจะเข้าสู่ย่อหน้าใหม่ตัว statements ในที่นี้หมายถึงคำสั่งอื่น ๆ นะคะ แล้วเด็ก ๆ สังเกตดูนะคะ ว่าในการประกาศฟังก์ชันตัวที่ 1 นะคะ กับตัวที่ 2 ตัวที่ 2 จะมีคำว่า return value return ก็คือการคืนส่งค่าคืนกลับซึ่งฟังก์ชันที่เราเขียน อาจจะเขียนแล้วมี return หรือไม่มีก็ได้นะคะ แต่ที่เขียนให้ดูเป็นตัวอย่างนี่ ให้เห็นรูปแบบนี้ให้เห็นทั้ง 2 แบบเป็นแบบที่ไม่มีการ return ค่าแต่แบบที่ 2 นี่มี มีการส่งคืนค่ากลับ ก็เลยจะมีคำว่า "return value" ก็คือเราต้องพิมพ์คำว่า return ด้วยตามด้วยค่าที่เราต้องการให้ส่งกลับ เช่น เดี๋ยวดูในตัวอย่างจะเห็นชัดนะคะ เดี๋ยวยกตัวอย่างแล้วจะมองภาพไม่ออก ซึ่งเขาบอกว่าค่าที่ส่งกลับนั้นจะเรียกว่านะคะ ทีนี้เรามาดูตัวอย่างแรกก่อนเพื่อจะให้เห็นว่าถ้าเราต้องการประกาศตัวแปรแล้วไม่มีการ returnไม่มีคำสั่ง return เพื่อคืนค่านี่ ในตัวอย่างนี้เราจะประกาศตัวแปรชื่อ เห็นไหมคะ ตรง def แล้วตามด้วย hello () def ก็คือ definition ก็คือคำสั่งเพื่อใช้ประกาศตัวแปรและติดประกาศตัวแปรอีกละ ประกาศฟังก์ชัน ขอโทษทีนะคะ คือ def แล้วก็ตามด้วย function name ซึ่งในที่นี้ตั้งชื่อว่า hello นะคะ ฟังก์ชัน hello ก็คือฟังก์ชันที่เราต้องใช้เพื่อแสดงคำทักทายออกมานั่นเองนะคะ แล้วทีนี้พอเวลาเรียกใช้ฟังก์ชันนี้นะคะ มันจะสั้น นึกออกนะ การเขียนโค้ดมันจะสั้นกว่าที่เราเคยทำ แล้วตามด้วย พารามิเตอร์หรือที่เราไว้เก็บค่า ก็คือ name นะคะ เสร็จแล้ว ตามด้วย statement ตามด้วยข้อความหรือคำสั่งหรือโค้ดอะไรก็แล้วแต่นะคะ ซึ่งในทีนี้เราต้องการให้แสดงนะคะ แสดงคำทักทายชื่อที่เรารับค่าเข้าไปนี่ หรือพารามิเตอร์ที่เราส่งเข้าไป ก่อนอื่น เด็ก ๆ เปิด Colab หรือยังคะ เปิด Colab ด้วยไปที่ web browser แล้วเปิดเหมือนเดิมนะคะ พิมพ์คำว่า "Colab" น่ะ c-o ต้องบอกว่า co สิ Colab นะคะ พิมพ์ l-a-b แล้วกด Enter เลยเพราะสังเกตว่าเว็บไหนที่เราเคยเปิดมันจะขึ้นมาอัตโนมัตินะเด็ก ๆ กด Enter ได้เลนยมันก็จะเข้ามาหน้า colab ที่เราใช้งานนะ แล้วก็คลิก Code นะคะ ลืมไปอย่าลืมทำอะไรก่อน เข้าสู่ระบบนะ ไม่อย่างนั้นเราจะ run มันไม่ได้นะคะ เด็ก ๆ อย่าลืมลงชื่อเข้าสู่ระบบด้วย Login เข้าไปด้วยนะคะ เข้าระบบของเราให้เรียบร้อยด้วยโอเคนะคะ เสร็จแล้วเราก็เริ่มไปที่เขียน code เหมือนเดิมนะคะ เด็ก ๆ กดที่คำว่า "code" นะคะ ในบรรทัดแรกของเรานะคะ เราก็เริ่มประกาศฟังก์ชัน โดยพิมพ์คำว่าอะไรคะ d-e แล้วก็ f ใช่ไหมคะ พิมพ์ด้วยตัวพิมพ์เล็กเสมอนะคะ ไม่ใช่พิมพ์ใหญ่แบบนี้นะ ไม่ใช่พิมพ์ D-e-f Def แบบนี้ ตัวใหญ่แบบนี้ถือว่าไม่ถูกต้องนะคะ ตัวใหญ่นี่ถือว่าไม่ถูกต้องนะคะ def นะคะ แล้วก็กด Space bar เพื่อวรรค 1 ครั้งนะคะ บอกแล้วว่าวิธีการประกาศฟังก์ชัน ก็คือพิมพ์คำว่า "def" แล้วตามด้วยชื่อของฟังก์ชันชื่อของฟังก์ชัน ในตัวอย่างเรา ชื่อว่า helloทีนี้มาดูชื่อ ชื่อของฟังก์ชันนี่ก็ต้องใช้ตัวพิมพ์เล็กเหมือนกันนะคะ ไม่ใช่ตัวพิมพ์ใหญ่นะคะ ดูดี ๆ นะคะ เพราะฉะนั้นพิมพ์ตัว h ด้วยตัวพิมพ์เล็กนะคะ h-e-l-l-o แล้วก็ใส่วงเล็บเข้าไป แล้วก็ตามด้วยพารามิเตอร์ ในวงเล็บพารามิเตอร์ของเรา ก็คือคำว่า name นะคะ ตัวพิมพ์เล็กเพราะมันเป็นตัวแปรชื่อว่า name เมื่อเสร็จฟังก์ชันใช่ไหมเสร็จคำสั่งฟังก์ชันต้องปิดด้วยเครื่องหมายโคลอน (:) เสมอแล้วกด Enter 1 ครั้ง ใช้วิธีกด Enter นะ ไม่ใช่เลื่อนเมาส์ลงไป สังเกตพอกด Enter นี่ตำแหน่งของเคอร์เซอร์มันจะ Tab เข้าไปนะ stagementหรือคำสั่งต่อไปที่เราจะใช้ ก็คือคำสั่งแสดงผลนะคะ ก็คือคำสั่ง print p-r-i-n-t print แล้วก็ตามด้วยวงเล็บเหมือนเดิม print อะไรสิ่งที่อยู่ในวงเล็บอย่าลืมนะคะ เมื่อใดที่บอกให้พิมพ์วงเล็บนี่ สังเกตมันจะมี () ขึ้นมานะ เดี๋ยว อ๋อ ขอโทษ ไม่ได้สลับหน้า มันไม่สลับหน้าตลอดเลย เราก็ว่าอยู่ แต่เด็กพิมพ์ตามใน PowerPoint แต่อยากให้เห็นใน Colab เพราะว่า เมาส์หาย เมาส์จ๋า เมาส์จ๋า นั่นน่ะสิเดี๋ยวเลื่อนไอ้นี่เอาก็ได้นะโอเคนะคะ นะในนี้จะพิมพ์คำว่า "print" นะคะ เดี๋ยวจะโชว์ไอ้ตัวข้อความด้วย เดี๋ยวสิ้นสุดการนำเสนอก่อนเดี๋ยวให้เห็น 2 หน้าด้วยกัน ไม่สิ ไม่สิโอเคไหมเดี๋ยวนะ กำลังหามุม มุมให้เธออยู่โอเคน่าจะได้เห็น 2 อย่างนะ เห็นไหมคะ จะมาที่คำสั่ง print ของเรานะแล้วในวงเล็บของ print ลืมทำให้มันขึ้น 2 หน้าคู่กัน เดี๋ยวนะคะ แป๊บหนึ่งขยับได้ไหม ไม่เห็นหน้านี้อีก ขอ 2 ทำไมได้ 4 นี่เดี๋ยวนะ เดี๋ยวจะกระเถิบแล้วก็ไม่เห็นในสไลด์อีกสิส่วนแบ่งทางการตลาดเยอะโอเคไหม อีกหน่อยหนึ่ง นะคะ วงเล็บในวงเล็บของคำว่า "print" เราจะ print คำว่า "hello" นะคะ แล้วตามด้วยเห็นไหม ตรงก่อน... ตรงก่อน hello มีเครื่องหมายคำพูดนะดูดี ๆ อาจจะเห็นไม่ชัดใส่เครื่องหมายคำพูดนะคะ Single Quote หรือแล้วค่อยพิมพ์ Hello ด้วยตัวใหญ่แล้วก็ตามด้วยเครื่องหมาย % %sนั่นคือ ข้อความนี้เป็น String นะคะ แล้วหลังเครื่องหมายคำพูดเด็ก ๆ ต้องเลื่อนไอ้ตัวนี้ไปหลังเครื่องหมายคำพูดนะพิมพ์ %name วรรคหนึ่งครั้งแล้วก็พิมพ์เปอร์เซ็นต์ แล้วตามด้วย name ตัวเล็กนะ ดูดี ๆ นะ เราเรียกใช้ เราสร้างพารามิเตอร์ด้วย name ตัวเล็ก เวลาเรียกใช้ก็ต้องใช้ตัวเล็กนะคะ นี่คือเสร็จฟังก์ชันนี้แล้วลองเรียกใช้งาน ลองกด Play ก่อน เราจะได้รู้นะคะ การกดตัวนี้นะ เพื่อจะได้เช็คกว่าที่เรา code ที่เราเขียนไปนี่มันถูกไหม ถ้าผิดมันจะขึ้น Error ใช่ไหมคะ ครั้งแรกเวลาโค้ดมันก็จะช้านิดหนึ่ง [เสียงหัวเราะ] มันก็จะยังหมุนติ้ว ๆ อยู่นะคะ เราก็ต้องรอนะคะ อ่าแสดงว่าไม่มีอะไรผิดนะคะ ไม่ทำอะไรนะ เพราะฟังก์ชันสร้างขึ้นมา สร้างแล้ว แล้วอย่าลืมว่ามันจะต้องมีการเรียกใช้ นึกออกนะต้องสร้าง สร้างเพื่อให้มันไปโดนเรียกก่อน มันถึงจะทำงานนะคะ ตอนนี้คือสร้างเพื่อให้คอมพิวเตอร์มันจำ จำไว้ว่าตอนนี้เราสร้างฟังก์ชันชื่อว่า hello แล้วนะคะ ที่ให้กด Run นี่เพื่อจะให้ตรวจสอบว่าโค้ดที่เราเขียนไปมันถูกหรือเปล่า ถ้าผิดมันจะแสดง Error นะ ถ้าเขียนไม่ผิดมันก็ไม่แสดงใช่ไหมคะ นี่ลอง Run แล้วนะคะ Error ไม่ขึ้นนะคะ ของใครขึ้น Error ยกมือ สิ่งที่ต้องเช็ก ก็คือ 1. คำสั่ง d-e-f นะคะ definition การประกาศฟังก์ชัน ตัวที่ 2 ก็คือชื่อฟังก์ชันใช้ตัวเล็ก และตัวที่ 3 พารามิเตอร์ พามิเตอร์จะมีค่าอยู่ในวงเล็บเสมอนะคะ เสร็จแล้วต้องปิดการประกาศฟังก์ชันด้วยโคลอนเสมอนะคะ ทีนี้เมื่อกี้ประกาศฟังก์ชันที่ 1 ไปแล้วมาดูแบบที่ 2 นะคะ ฟังก์ชันที่มีการ return หรือส่งกลับค่าเดี๋ยวขยายหน้าไอ้นี่ให้ก่อนสลับไปสลับมากันอยู่นี่ล่ะเรา อันนี้ อันนี้แบบไม่มี return ค่านะในตัวอย่างนี่เราสร้างฟังก์ชันชื่อ hello นะคะ เราใช้เราสร้างฟังก์ชันนี้ขึ้นมาเพื่อต้องการให้มันแสดงข้อความ เอาอีกแล้วอะไรอีกหว่าสลับจอไม่ได้เลย น่าจะเป็นกับไอ้ตัวนี้ทำไมหนก่อนไม่เห็นมี หรือเพราะเป็นไอ้นี่บ่ Windows 11 นี่บ่ มันถึงขึ้นไอ้สลับไอ้จอไอ้นี่ทุกทีเลย แล้วก็เป็นปัญหาในการใช้งานจะได้ใช้ Windows อื่นเสียล่ะมั้งสลับไอ้จอไอ้นี่นะคะ มาดูตัวอย่างที่ 2 นะคะ เราจะประกาศฟังก์ชันมีการใช้ return value หรือการคืนค่ากลับ ในตัวอย่างที่ 2 เป็นการประกาศฟังก์ชันที่ชื่อว่า area ()โดยมีพารามิเตอร์ 2 ตัวwidth แล้วก็ความ... width แล้วก็ height ซึ่ง area ในที่นีพื้นที่ สูตรการหาพื้นที่สี่เหลี่ยม ก็คือกว้างคูณยาวเพราะฉะนั้น ค่าพารามิเตอร์ที่ไว้ใช้สำหรับเก็บค้าก็คือค่าความยาวกับความกว้างนั่นเองนะคะ ก็เลยตั้งชื่อตัวพารามิเตอร์ 2 ตัวนี้ว่า widthนั่นเองนะคะ เสร็จแล้วปิดด้วยโคลอน statement ต่อมาสร้างตัวแปรชื่อว่า c ตัวแปร c สำหรับคำนวณความกว้างคูณความยาว ก็คือคำนวณหาพื้นที่ของสี่เหลี่ยมนั่นเองนะคะ แล้วทำการ return ค่า c นะคะ ก็คือให้ส่งกลับค่าของ c ก็คือเมื่อเอาพารามิเตอร์มาคำนวณแล้วนี่ c จะได้เท่าไหร่ คือส่งกลับค่าให้ c นะคะ นี่คือการประกาศฟังก์ชันแบบมีการ return ค่าเพราะฉะนั้น บางคนคีย์ใน Colab ไปเรียบร้อยแล้วนะคะ เรามาเริ่มคีย์ของเราด้วยนะคะ แล้วมันก็จะไม่ขึ้นไอ้หน้านี้อีกแล้ว มันเป็นอะไรกับ...มันไม่สลับ Extend หรือมันไม่ขึ้นหน้าจออีกแล้วน่ะโอเค ต้องสลับ 2 รอบเชียวเหรอนะคะ เอาไว้ก่อนอย่างนั้นก็ต้องมาจัดไอ้นี่ใหม่อีกแล้วนี่ไม่เห็นตัวหลังอีก เอาเห็นไหมไม่เห็นอีก มันน่านักเชียวแป๊บนึงนะสลับหน้าก่อนโอเคไหม Colab ไปไหนแล้วนะคะ เราประกาศฟังก์ชันที่ 2 ต่อด้วยฟังก์ชันแรกได้เลยนะคะ เมื่อหลังฟังก์ชันแรกเรากด Enter กดลงไป2 อันเลยก็ได้เด็ก ๆ สังเกตตำแหน่งมันจะTab เข้าไปนะ เรากดย้อนคืน 1 ครั้งตำแหน่งตรงกับชิดขอบแล้วก็เริ่มพิมพ์คำสั่ง definition d-e-f เพื่อประกาศใช้คำสั่งฟังก์ชันที่ชื่อว่า... ชื่อฟังกชันตัวต่อไป ด้วยเครื่องหมายComma