ฟังก์ชัน#
การแนะนำ#
ฟังก์ชันเป็นส่วนประกอบพื้นฐานของการเขียนโปรแกรม Python โดยทำหน้าที่รวบรวมโค้ดส่วนย่อยๆ เข้าไว้ด้วยกันเป็นส่วนๆ ที่นำกลับมาใช้ซ้ำได้และมีประสิทธิภาพ ออกแบบมาเพื่อทำงานเฉพาะอย่าง ฟังก์ชันสามารถเรียกใช้ได้หลายครั้งในโปรแกรมเดียวกัน ทำให้การจัดระเบียบโค้ดง่ายขึ้น และช่วยหลีกเลี่ยงการเขียนโค้ดซ้ำซ้อน นอกจากนี้ ฟังก์ชันยังทำให้การแก้ไขข้อผิดพลาดในโค้ดง่ายขึ้นด้วย
สำคัญ: การกำหนดฟังก์ชันเพียงอย่างเดียวไม่ได้ทำให้ฟังก์ชันทำงาน ใช้ start_thread เพื่อเริ่มฟังก์ชันในเธรดใหม่เพื่อให้ฟังก์ชันเริ่มทำงานทันทีเมื่อเริ่มโปรเจ็กต์ แทนที่จะรอเหตุการณ์หรือการเรียกกลับ
defกำหนดฟังก์ชันreturnส่งผลลัพธ์ของฟังก์ชันกลับไปยังโปรแกรมหลัก
วิธีใช้:
def function_name(parameters):
# Code to execute when the function is called
return result # Optional, used to return a value
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ชื่อที่คุณตั้งให้กับฟังก์ชันของคุณ |
|
ตัวแปรเสริม ที่รับค่าอินพุตเมื่อเรียกใช้ฟังก์ชัน ซึ่งช่วยให้สามารถส่งข้อมูลเข้าไปในฟังก์ชันได้ |
|
ตัวเลือกเสริม อนุญาตให้ฟังก์ชันส่งผลลัพธ์กลับไปยังผู้เรียก หากฟังก์ชันไม่มีคำสั่ง return ฟังก์ชันจะส่งคืนค่า |
หมายเหตุ: ฟังก์ชันจะต้อง ถูกกำหนด ก่อน ที่จะถูกเรียกใช้เสมอ
การกำหนดและการเรียกใช้ฟังก์ชัน#
Functions with No Parameters#
หากฟังก์ชันไม่ต้องการข้อมูลป้อนเข้า คุณสามารถกำหนดฟังก์ชันนั้นได้โดยไม่ต้องมีพารามิเตอร์
def greeting():
console.print("Hello!")
def main():
# Call the greeting function
greeting()
# Start threads — Do not delete
start_thread(main)
Functions with Parameters#
นอกจากนี้ คุณยังสามารถเพิ่มพารามิเตอร์ให้กับฟังก์ชันได้ ซึ่งจะช่วยให้คุณส่งข้อมูลที่ฟังก์ชันต้องการเพื่อทำงานได้
# Build Used: Super Code Base 2.0
def move_square(moves):
for index in range(moves):
drivetrain.drive_for(FORWARD, 150)
drivetrain.turn_for(RIGHT, 90)
def main():
# Call the move_square function
move_square(4)
# Start threads — Do not delete
start_thread(main)
Functions with Default Arguments#
อาร์กิวเมนต์เริ่มต้น (Default argument) คือพารามิเตอร์ที่จะกำหนดค่าเริ่มต้นให้หากไม่มีการระบุค่าในฟังก์ชันที่เรียกใช้สำหรับอาร์กิวเมนต์นั้น
# Build Used: Super Code Base 2.0
def move_square(moves=4):
for index in range(moves):
drivetrain.drive_for(FORWARD, 150)
drivetrain.turn_for(RIGHT, 90)
def main():
# Call the move_square function
move_square()
# Start threads — Do not delete
start_thread(main)
Return Values from Functions#
ฟังก์ชันสามารถส่งข้อมูลกลับไปยังผู้เรียกโดยใช้คีย์เวิร์ด return ซึ่งช่วยให้คุณสามารถดักจับและใช้งานผลลัพธ์ในโปรแกรมของคุณได้
def times_two(number):
return number * 2
def main():
# Display the return value
console.print(times_two(2))
# Start threads — Do not delete
start_thread(main)
เริ่มเธรด#
start_thread เริ่มฟังก์ชันในเธรดใหม่เพื่อให้เริ่มทำงานทันทีเมื่อเริ่มโปรเจ็กต์
หากมีการใช้คำสั่ง start_thread มากกว่าหนึ่งครั้ง ฟังก์ชันต่างๆ จะทำงานพร้อมกัน
Usage:
start_thread(function)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ชื่อของฟังก์ชันที่กำหนดไว้ก่อนหน้านี้ |
# Build Used: Super Code Base 2.0
def move_square():
# Move in a square path
while True:
drivetrain.drive_for(FORWARD, 150)
drivetrain.turn_for(RIGHT, 90)
def led_lights():
# Blink LED lights
while True:
bumper.set_color(GREEN)
wait(0.5, SECONDS)
bumper.set_color(RED)
wait(0.5, SECONDS)
# Start threads — Do not delete
start_thread(move_square)
start_thread(led_lights)