เขียนโปรแกรม Python – การสร้าง Function และ Run module เบื้องต้น

เขียนโปรแกรม Python – การสร้าง Function และ Run module เบื้องต้น

index

ใน python นั้นการเขียน function มี syntax ที่ไม่ค่อยเหมือนกับภาษาอื่นคือจะไม่ใช้คำว่า function แต่จะประกาศ function โดยใช้คำว่า def แทน และรูปแบบของ python นั้นจะไม่มีการใช้เครื่องหมาย {} แต่จะใช้การเว้นวรรคหรือ tab แทน หรือที่เรียกว่า Indentation ซึ่งเรามาดูกันดีกว่าว่าการเขียน function ใน python นั้นมีรูปแบบการเขียนอย่างไร

เขียนโปรแกรม Python – การสร้าง Function และ Run module เบื้องต้น

ขั้นแรกเปิด IDEL python (GUI) ขึ้นมาจากนั้นผมจะทำการเขียน function ในไฟล์ใหม่ โดยให้ไปที่ File -> New Window

1

จากนั้นก็ทำการเขียนโค้ดดังนี้

[sourcecode language=”python”]

def calculateGrade(score):
“””(float) –> string

Return Grade of score
>> calculateGrade(90)
“A”
>> calculateGrade(50)
“D”

“””

if(score >= 80):
return “A+”
elif(score >= 70 and score < 80): return "B" elif(score >=60 and score < 70): return "C" elif(score >=50 and score < 60): return "D" else: return "E" [/sourcecode] โดย function ที่ผมเขียนขึ้นนั้นจะชื่อว่า calculateGrade รับค่ามาเป็นตัวเลขเก็บในตัวแปร score ซึ่งสามารถรับได้ทั้ง int และ float จากนั้นใน function จะทำการเช็คเงื่อนไขตามเกณฑ์ที่กำหนด โดยจะสังเกตว่าจากเครื่องหมาย {} ใน python จะใช้การเคาะ tab แทนและจะใช้เครื่อง : เป็นตัวกำหนด ในการสร้าง function ใน python จากเริ่มด้วยคำว่า def ตามด้วยชื่อ function จากนั้นตามด้วย (parameter ที่ต้องการส่งเข้าไปใน function) จะสังเกตว่าใน python ไม่จำเป็นต้องประกาศ type ของ ตัวแปร จากนั้นก็ปิดด้วยเครื่องหมาย : ต่อมาจะเป็น comment เพื่ออธิบายรายละเอียดของฟังก์ชั่นซึ่งในการ comment หลายบรรทัดจะใช้เครื่องหมาย """ แล้วปิด comment ด้วย """ เหมือนกัน บรรทัดต่อมาก็จะเป็น if elif สังเกตว่าจะเป็นการเคาะ tab เหมือนกันและมีเครื่องหมาย : ก่อนจะขึ้นบรรทัดในส่วนของโค้ดที่จะให้ทำงาน โดยใน python จะใช้คำว่า elif แทนไม่เหมือนในหลายๆภาษาที่ใช้ eles if  และจะใช้คำว่า and , or แทนเครื่องหมาย &&, || จากนั้นก็จบโค้ดในส่วนของฟังก์ชั่นดังตัวอย่าง ให้ทำการ save เก็บไว้โดยตั้งชื่อว่า calculategrade.py 2

หลังจากนั้นไปที่เมนู Run -> Run Module หรือ key ลัดกด F5 ก็ได้ครับ จากนั้นให้ลองพิมพ์ชื่อ function ที่สร้างขึ้นแล้วลองส่งค่าเข้าไปดังรูปครับ

3

เมื่อลองรันฟังก์ชั่นแล้วให้ลองพิมพ์คำสั่ง help(ตามด้วยชื่อ function) นั้นคือ help(calculateGrade) จะได้ผลลัพธ์ดังรูป

Untitled

จะเห็นว่า comment ที่เราใส่ไว้จะแสดงขึ้นมา นั้นก็หมายความว่าถ้าเราใส่ comment ไว้ให้ดีก็จะช่วยเราได้ในอนาคตหากเราลืมการทำงานของฟังก์ชั่นที่เราสร้างขึ้น เมื่อเรากด F5 รัน module แล้วจะทำให้ python shell รู้จัก path ที่เราเก็บไฟล์ เราสร้างใช้คำสั่ง import ตามด้วยชื่อไฟล์ได้ เพื่อทำการ import function อื่นมาใช้งาน

9

โดยผมทำการสร้างไฟล์ขึ้นมาใหม่ชื่อไฟล์ว่า other.py เก็บไว้ที่เดียวกันกับ calculategrade.py จากนั้นเรากลับไปที่หน้าต่าง python shell แล้วพิมพ์คำสั่งว่า

import other

10

นั้นคือ import ตามด้วยชื่อไฟล์ จะทำให้ python shell import ไฟล์ other.py มาร่วมทำงานด้วย จากนั้นให้ลองทำการแก้ไขไฟล์ other.py โดยให้เปลี่ยนข้อความ print เป็น

[sourcecode language=”python”]

print (“other file new version”)

[/sourcecode]

หลังจากนั้นกลับไปที่ python shell แล้วทำการ import other อีกครั้ง สักเกตว่าจะไม่มีการพิมพ์ข้อความใดๆ แม้ว่าข้อความถูกเปลี่ยนไปแล้ว นั้นก็เพราะ python จะไม่ ทำการโหลด module ใหม่อีกรอบจะใช้ของเดิม ถ้าหากเราต้องการ import ไฟล์ใหม่อีกครั้งให้ทำการ import และใช้คำสั่งดังต่อไปนี้

11

สังเกตว่าจะทำการแสดงข้อความใหม่ที่เราได้แก้ไขไปแล้ว ที่นี้ลองทำการแก้ไขไฟล์ other.py อีกครั้ง โดยเพิ่ม function ที่มีชื่อว่า otherprint ในบรรทัดต่อมาดังรูป

19

แล้วทำการ imp.reload(other) ใน python shell แล้วลองเรียกใช้ฟังก์ชั่น otherprint ผลก็คือมันไม่รู้จัก ที่นี้ลองเพิ่มคำสั่ง print อีกครั้งในไฟล์ other.py จะได้โค้ดดังนี้

[sourcecode language=”python”]

print (“other file new version”)
print (“other file new version”)
def otherprint():
return “def other”

[/sourcecode]

จากนั้นก็ลองใน python shell ให้ imp.reload(other) อีกครั้งผลปรากฎว่ามันกลับ print 2 ครั้งนั้นก็หมายความว่าการใช้ imp.reload นั้นจะทำการ reload ในโค้ดส่วนของการทำงานเท่านั้น คำสั่งในส่วน function ที่อยู่ในไฟล์จะไม่ทำการ reload ใหม่ เพราะฉะนั้นควรระวังเรื่องนี้ด้วยนะครับ ถ้าหากลอง ไปที่ไฟล์ other.py แล้วเลือก Run -> Run module แล้วลองเรียกใช้ otherprint() ผลก็คือเรียกใช้งานได้ครับ ตัวอย่างการทดลองเป็นไปตามรูปด้านล่างครับ

20

ผมก็ขอจบบทความนี้ไว้เท่านี้นะครับ

 Download SourceCode

Leave a Reply

Your email address will not be published. Required fields are marked *