Home / Function

Function

You are not logged in.

If you are a current student, please Log In for full access to this page.

Table of Contents

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

slide6

ทดลองรันโค้ดด้านล่าง


5) Function with arguments

slide7

Try!!

  • รันโค้ดด้านล่าง (ปุ่ม Run Code)
  • ปรับแก้โค้ด โดยเรียกใช้ฟังก์ชัน sayBye() และใส่ argument เป็นชื่อของนักเรียน (อย่าลืมว่าชื่อต้องเป็นสตริง)

Help!! โค้ดด้านล่างนี้ยังรันไม่ผ่าน โปรดช่วยแก้ไข


6) Function with default arguments

slide8

Try!!

  • รันโค้ดด้านล่าง (ปุ่ม Run Code)
  • เรียกใช้ฟังก์ชัน say() เพื่อให้แสดงข้อความ Hi แล้วตามด้วยชื่อนักเรียน

slide10

Help!! โค้ดด้านล่างนี้ยังรันไม่ผ่าน โปรดช่วยแก้ไข


7) Returning a value from a function

การคืนค่าผลลัพธ์จากฟังก์ชัน (การส่งค่ากลับ)

  • สามารถใช้คำสั่ง return ได้หลายที่ในฟังก์ชัน
  • เมื่อทำคำสั่ง return แล้ว จะหยุดการทำงานของฟังก์ชันทันที และกลับไปทำงานต่อหลังจุดที่เรียกใช้ฟังก์ชัน
  • ฟังก์ชันคืนค่าได้ 1 ค่าเท่านั้น (ถ้าต้องการคืนหลายค่าให้ใช้ tuple ซึ่งจะได้เรียนในบทถัด ๆ ไป)
  • หากคำสั่งสุดท้ายของฟังก์ชันไม่ใช่ return ระบบจะเพิ่มคำสั่ง return (ไม่คืนค่าใด ๆ) ที่ท้ายฟังก์ชัน

slide12

Try!!

  • ทดลองเรียกใช้ฟังก์ชัน bmi แล้วรันดูผลลัพธ์

Try!!

  • รันโค้ดด้านล่าง แล้วพิจารณาผลลัพธ์
  • ปรับปรุงฟังก์ชัน myFunc ด้านล่างนี้ให้เป็นฟังก์ชันที่ส่งค่ากลับเป็นผลบวกของ a และ b แล้วทดลองรันโค้ดเพื่อดูผลลัพธ์


8) Calling a function and two types of arguments

slide12

Try!!

  • ทดลองเรียกใช้ฟังก์ชัน rectArea แบบ position และ keyword argument แล้วรันดูผลลัพธ์


9) Global vs. Local variables

slide13

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