Function
Table of Contents
- 1) ฟังก์ชันคืออะไรในการเขียนโปรแกรม
- 2) ตัวอย่างการใช้งานฟังก์ชัน
- 3) Python Built-in Functions
- 4) Defining a basic function
- 5) Function with arguments
- 6) Function with default arguments
- 7) Returning a value from a function
- 8) Calling a function and two types of arguments
- 9) Global vs. Local variables
- 10) Exercise
1) ฟังก์ชันคืออะไรในการเขียนโปรแกรม
- การนำชุดคำสั่งมาเขียนรวมกัน โดยอาจมีการรับค่าข้อมูล(หรือไม่มีก็ได้) จากภายนอกฟังก์ชันเพื่อประมวลผล แล้วเรียกใช้ชื่อฟังก์ชันนั้นแทนการเขียนชุดคำสั่งเดิม
- ไม่ต้องเขียนโค้ดซ้ำ หากมีการใช้งานบ่อย และแชร์ฟังก์ชันเพื่อทำงานร่วมกันได้
2) ตัวอย่างการใช้งานฟังก์ชัน
เปรียบเทียบโค้ดสองอันต่อไปนี้ที่ทำงานและแสดงผลลัพธ์เหมือนกัน
a = [1, 2, 3, 4]
b = [7, 8, 9]
c = [1, 4, 8]
d = [2, 3, 9]
sm = 0
for x in a:
sm += x
print(sm)
sm = 0
for x in b:
sm += x
print(sm)
sm = 0
for x in c:
sm += x
print(sm)
sm = 0
for x in d:
sm += x
print(sm)
10
24
13
14
a = [1, 2, 3, 4]
b = [7, 8, 9]
c = [1, 4, 8]
d = [2, 3, 9]
def print_sum(lst):
sm = 0
for x in lst:
sm += x
print(sm)
print_sum(a)
print_sum(b)
print_sum(c)
print_sum(d)
10
24
13
14
3) Python Built-in Functions
- Python has several functions that are readily available for use. These functions are called built-in functions. In this reference page, you will find all the built-in functions in Python.
- Example: https://docs.python.org/3/library/functions.html
a = 10
b = 2
x = pow(a,b)
print(x)
c = [1,2,3,4,5,6,7]
print(sum(c))
4) Defining a basic function
ทดลองรันโค้ดด้านล่าง
5) Function with arguments
Try!!
- รันโค้ดด้านล่าง (ปุ่ม Run Code)
- ปรับแก้โค้ด โดยเรียกใช้ฟังก์ชัน sayBye() และใส่ argument เป็นชื่อของนักเรียน (อย่าลืมว่าชื่อต้องเป็นสตริง)
Help!! โค้ดด้านล่างนี้ยังรันไม่ผ่าน โปรดช่วยแก้ไข
6) Function with default arguments
Try!!
- รันโค้ดด้านล่าง (ปุ่ม Run Code)
- เรียกใช้ฟังก์ชัน say() เพื่อให้แสดงข้อความ Hi แล้วตามด้วยชื่อนักเรียน
Help!! โค้ดด้านล่างนี้ยังรันไม่ผ่าน โปรดช่วยแก้ไข
7) Returning a value from a function
การคืนค่าผลลัพธ์จากฟังก์ชัน (การส่งค่ากลับ)
- สามารถใช้คำสั่ง return ได้หลายที่ในฟังก์ชัน
- เมื่อทำคำสั่ง return แล้ว จะหยุดการทำงานของฟังก์ชันทันที และกลับไปทำงานต่อหลังจุดที่เรียกใช้ฟังก์ชัน
- ฟังก์ชันคืนค่าได้ 1 ค่าเท่านั้น (ถ้าต้องการคืนหลายค่าให้ใช้ tuple ซึ่งจะได้เรียนในบทถัด ๆ ไป)
- หากคำสั่งสุดท้ายของฟังก์ชันไม่ใช่ return ระบบจะเพิ่มคำสั่ง return (ไม่คืนค่าใด ๆ) ที่ท้ายฟังก์ชัน
Try!!
- ทดลองเรียกใช้ฟังก์ชัน bmi แล้วรันดูผลลัพธ์
Try!!
- รันโค้ดด้านล่าง แล้วพิจารณาผลลัพธ์
- ปรับปรุงฟังก์ชัน myFunc ด้านล่างนี้ให้เป็นฟังก์ชันที่ส่งค่ากลับเป็นผลบวกของ a และ b แล้วทดลองรันโค้ดเพื่อดูผลลัพธ์
8) Calling a function and two types of arguments
Try!!
- ทดลองเรียกใช้ฟังก์ชัน rectArea แบบ position และ keyword argument แล้วรันดูผลลัพธ์
9) Global vs. Local variables
Try!!
- รันโค้ดด้านล่าง
- แก้ไขโค้ดเพื่อดูผลลัพธ์ที่ต่างออกไป
10) Exercise
Exercise 1
จงเขียนฟังก์ชัน
minus(a, b)
ให้เป็นฟังก์ชันที่ส่งค่ากลับเป็น a - b
Exercise 2
จงแก้ไขฟังก์ชัน
squareArea(a)
ด้านล่างนี้ ให้เป็นฟังก์ชันรับความยาวด้าน a
ที่ส่งค่ากลับเป็นพื้นที่สี่เหลี่ยมจัตุรัส โดยที่ฟังก์ชันจะส่งค่ากลับเป็น -1 หาก a มีค่าน้อยกว่าหรือเท่ากับศูนย์
Exercise 3
จงเขียนฟังก์ชัน isRightTriangle(a, b, c)
ซึ่งเป็นฟังก์ชันตรวจสอบว่าสามเหลี่ยมที่มีมุมขนาด a, b, c นั้นสามารถนำไปกำหนดเป็นมุมของรูปสามเหลี่ยมมุมฉากได้หรือไม่ โดย
- ส่งค่ากลับเป็น
True
ถ้าสามารถนำไปกำหนดเป็นมุมของรูปสามเหลี่ยมมุมฉากได้ - ส่งค่ากลับเป็น
False
ถ้าไม่สามารถนำไปกำหนดเป็นมุมของรูปสามเหลี่ยมมุมฉากได้
Hint
-
มุมภายในของรูปสามเหลี่ยมจะรวมกันได้ 180 องศาเสมอ และรูปสามเหลี่ยมมุมฉากมีมุมภายในหนึ่งมุมที่มีขนาดเท่ากับ 90 องศา
-
เช่น สมมติว่าเมื่อเรียกใช้ฟังก์ชัน
isRightTriangle(90, 30, 60)
แล้วจะต้องส่งค่ากลับเป็นTrue