เขียนโปรแกรม Python – การสร้าง Function และ Run module เบื้องต้น
ใน python นั้นการเขียน function มี syntax ที่ไม่ค่อยเหมือนกับภาษาอื่นคือจะไม่ใช้คำว่า function แต่จะประกาศ function โดยใช้คำว่า def แทน และรูปแบบของ python นั้นจะไม่มีการใช้เครื่องหมาย {} แต่จะใช้การเว้นวรรคหรือ tab แทน หรือที่เรียกว่า Indentation ซึ่งเรามาดูกันดีกว่าว่าการเขียน function ใน python นั้นมีรูปแบบการเขียนอย่างไร
ขั้นแรกเปิด IDEL python (GUI) ขึ้นมาจากนั้นผมจะทำการเขียน function ในไฟล์ใหม่ โดยให้ไปที่ File -> New Window
จากนั้นก็ทำการเขียนโค้ดดังนี้
[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
หลังจากนั้นไปที่เมนู Run -> Run Module หรือ key ลัดกด F5 ก็ได้ครับ จากนั้นให้ลองพิมพ์ชื่อ function ที่สร้างขึ้นแล้วลองส่งค่าเข้าไปดังรูปครับ
เมื่อลองรันฟังก์ชั่นแล้วให้ลองพิมพ์คำสั่ง help(ตามด้วยชื่อ function) นั้นคือ help(calculateGrade) จะได้ผลลัพธ์ดังรูป
จะเห็นว่า comment ที่เราใส่ไว้จะแสดงขึ้นมา นั้นก็หมายความว่าถ้าเราใส่ comment ไว้ให้ดีก็จะช่วยเราได้ในอนาคตหากเราลืมการทำงานของฟังก์ชั่นที่เราสร้างขึ้น เมื่อเรากด F5 รัน module แล้วจะทำให้ python shell รู้จัก path ที่เราเก็บไฟล์ เราสร้างใช้คำสั่ง import ตามด้วยชื่อไฟล์ได้ เพื่อทำการ import function อื่นมาใช้งาน
โดยผมทำการสร้างไฟล์ขึ้นมาใหม่ชื่อไฟล์ว่า other.py เก็บไว้ที่เดียวกันกับ calculategrade.py จากนั้นเรากลับไปที่หน้าต่าง python shell แล้วพิมพ์คำสั่งว่า
import other
นั้นคือ 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 และใช้คำสั่งดังต่อไปนี้
สังเกตว่าจะทำการแสดงข้อความใหม่ที่เราได้แก้ไขไปแล้ว ที่นี้ลองทำการแก้ไขไฟล์ other.py อีกครั้ง โดยเพิ่ม function ที่มีชื่อว่า otherprint ในบรรทัดต่อมาดังรูป
แล้วทำการ 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() ผลก็คือเรียกใช้งานได้ครับ ตัวอย่างการทดลองเป็นไปตามรูปด้านล่างครับ
ผมก็ขอจบบทความนี้ไว้เท่านี้นะครับ