กลุ่มของคำสั่งที่ถูกออกแบบให้ทำงานตามวัตถุประสงค์ที่กำหนดไว้ และสามารถนำกลับมาใช้ซ้ำได้หลายครั้งภายในโปรแกรม แนวคิดนี้เรียกว่า "การนำโค้ดกลับมาใช้ใหม่" (Code Reuse) การสร้างฟังก์ชันช่วยให้โปรแกรมมีโครงสร้างที่ชัดเจน แบ่งการทำงานออกเป็นส่วน ๆ ได้อย่างมีระบบ ลดความซ้ำซ้อนของโค้ด และช่วยให้จัดการกับงานที่ซับซ้อนได้ จึงสามารถทำให้การพัฒนาโปรแกรมเป็นไปอย่างมีประสิทธิภาพมากขึ้น
function_name
คือ ชื่อของฟังก์ชันที่ต้องการสร้าง (ควรตั้งชื่อให้สื่อความหมาย)
parameters
คือ อาร์กิวเมนต์ที่สามารถส่งเข้าไปในฟังก์ชัน (ไม่บังคับมีหรือไม่มีก็ได้)
statements
คือ คำสั่งภายในฟังก์ชัน
การสร้างฟังก์ชันใน Python จะใช้คำสั่ง def ตามด้วยชื่อฟังก์ชันและวงเล็บที่อาจมีพารามิเตอร์อยู่ภายใน หลังจากสร้างฟังก์ชันแล้ว สามารถเรียกใช้ฟังก์ชันได้โดยการใช้ชื่อฟังก์ชันตามด้วยวงเล็บ
💻 ตัวอย่าง การสร้างและเรียกใช้งานฟังก์ชันที่ไม่มีพารามิเตอร์
บรรทัดที่ 2
เป็นการประกาศฟังก์ชันชื่อว่า greet ซึ่งไม่มีพารามิเตอร์ใด ๆ ที่จะรับเข้ามา เมื่อฟังก์ชันถูกเรียกใช้งานจะทำงานตามคำสั่งภายใน
บรรทัดที่ 3
เป็นคำสั่งภายในฟังก์ชัน greet()
บรรทัดที่ 6
เป็นการเรียกใช้ฟังก์ชัน greet ซึ่งจะทำให้ฟังก์ชันทำงาน
💻 ตัวอย่าง การสร้างและเรียกใช้งานฟังก์ชันที่มีพารามิเตอร์
บรรทัดที่ 2
เป็นการประกาศฟังก์ชันชื่อว่า greet โดยรับพารามิเตอร์หนึ่งตัวคือ name ซึ่งจะใช้เป็นตัวแทนของข้อมูลที่ถูกส่งเข้ามาในฟังก์ชัน
บรรทัดที่ 3
เป็นคำสั่งภายในฟังก์ชัน greet
บรรทัดที่ 6
เป็นการเรียกใช้ฟังก์ชัน greet และส่งค่าตัวแปร "นัท" เข้าไปแทนที่ name
คือ ตัวแปรที่กำหนดไว้ในประกาศฟังก์ชัน เพื่อรองรับข้อมูลที่ส่งเข้ามาให้ฟังก์ชันในขณะที่ถูกเรียกใช้ เมื่อสร้างฟังก์ชันพร้อมพารามิเตอร์ ฟังก์ชันจะสามารถทำงานกับข้อมูลที่หลากหลายได้ โดยไม่ต้องแก้ไขโค้ดภายในฟังก์ชัน
คือ ค่าหรือข้อมูลที่ถูกส่งเข้าไปให้กับฟังก์ชันเมื่อมีการเรียกใช้ฟังก์ชัน โดยข้อมูลเหล่านี้จะถูกแทนค่าลงในพารามิเตอร์ที่กำหนดไว้และถูกประมวลผลตามคำสั่งภายในฟังก์ชัน
💻 ตัวอย่าง พารามิเตอร์และอาร์กิวเมนต์
บรรทัดที่ 1
เป็นการประกาศฟังก์ชัน greet โดยมีพารามิเตอร์ name ซึ่งจะใช้เก็บค่าที่ถูกส่งเข้ามาขณะที่เรียกใช้ฟังก์ชัน
บรรทัดที่ 2
เป็นคำสั่งภายในฟังก์ชัน greet แสดงผลข้อความ "สวัสดีค่ะ" ตามด้วยค่าที่ถูกส่งเข้ามาในพารามิเตอร์ name
บรรทัดที่ 4
เป็นการเรียกใช้ฟังก์ชัน greet พร้อมส่งอาร์กิวเมนต์ "นัท" ไปแทนที่พารามิเตอร์ name ภายในฟังก์ชัน
บรรทัดที่ 5
เป็นการเรียกใช้ฟังก์ชัน greet อีกครั้ง โดยส่งอาร์กิวเมนต์ "ปริม"
คือ บริเวณหรือช่วงเวลาที่ตัวแปรสามารถถูกเรียกใช้ได้ภายในโปรแกรม ซึ่งตัวแปรแต่ละตัวจะมีขอบเขตที่แตกต่างกันไปขึ้นอยู่กับตำแหน่งและการประกาศตัวแปรนั้น ๆ การทำความเข้าใจ เรื่อง ขอบเขตของตัวแปรจึงเป็นสิ่งสำคัญในการป้องกันข้อผิดพลาดที่อาจเกิดขึ้นจากการเข้าถึงหรือแก้ไขตัวแปรที่อยู่นอกขอบเขต ซึ่งใน Python มีการจัดการขอบเขตของตัวแปรอย่างชัดเจน ช่วยให้โปรแกรมมีความเป็นระเบียบและทำงานได้อย่างมีประสิทธิภาพ ขอบเขตของตัวแปรสามารถแบ่งออกเป็น 2 ประเภทหลัก ได้แก่ Global Variable (ตัวแปรภายนอกฟังก์ชัน) และ Local Variable (ตัวแปรภายในฟังก์ชัน)
คือ ตัวแปรที่ถูกประกาศนอกฟังก์ชันใด ๆ ในโปรแกรม ซึ่งมีขอบเขตอยู่ในระดับ "ทั่วโลก" (global scope) ของโปรแกรม นั่นหมายความว่าตัวแปรนี้สามารถถูกเรียกใช้ได้จากทุกส่วนของโปรแกรม ไม่ว่าจะเป็นภายในหรือภายนอกฟังก์ชัน เนื่องจากตัวแปร Global มีอายุการใช้งานตลอดการทำงานของโปรแกรมจนกว่าจะสิ้นสุดโปรแกรมหรือมีการเปลี่ยนแปลงค่าใหม่
ตัวแปร Global มีประโยชน์ในกรณีที่ต้องการแชร์ข้อมูลระหว่างฟังก์ชันหรือส่วนต่าง ๆ ของโปรแกรม อย่างไรก็ตาม การใช้ตัวแปร Global มากเกินไปอาจทำให้โปรแกรมซับซ้อนและยากต่อการตรวจสอบหาข้อผิดพลาด เนื่องจากการแก้ไขค่าของตัวแปร Global อาจส่งผลต่อการทำงานของโปรแกรมในส่วนอื่น ๆ
คือ คือตัวแปรที่ถูกประกาศและใช้งานภายในฟังก์ชันใด ๆ โดยมีขอบเขตการทำงานอยู่เฉพาะภายในฟังก์ชันนั้นเท่านั้น เมื่อฟังก์ชันสิ้นสุดการทำงาน ตัวแปร Local จะถูกทำลายและไม่สามารถเข้าถึงได้อีก
Local Variable ช่วยให้สามารถเก็บค่าข้อมูลที่เฉพาะเจาะจงสำหรับการทำงานของฟังก์ชันนั้น ๆโดยไม่ส่งผลกระทบต่อตัวแปรอื่น ๆ ในโปรแกรม และการเปลี่ยนแปลงค่าของตัวแปร Local จะไม่ส่งผลต่อตัวแปร Global ที่อาจมีชื่อเดียวกัน
💻 ตัวอย่าง ขอบเขตของตัวแปรในฟังก์ชัน (Variable Scope)
บรรทัดที่ 1
เป็นการประกาศตัวแปร Global ชื่อ x และกำหนดค่าเป็น 50
บรรทัดที่ 3
ประกาศฟังก์ชัน my_function()
บรรทัดที่ 4
ภายในฟังก์ชัน my_function() เป็นการประกาศตัวแปร Local ชื่อ x และกำหนดค่าเป็น 20
บรรทัดที่ 5
แสดงค่า x ที่เป็นตัวแปร Local ซึ่งมีค่าเป็น 20
บรรทัดที่ 7
เป็นการเรียกใช้ฟังก์ชัน my_function()
บรรทัดที่ 8
แสดงค่าตัวแปร Global ซึ่งจะเห็นได้ว่าตัวแปร x ไม่ได้เปลี่ยนแปลงยังคงค่าเป็น 50