Saturday, July 30, 2016

เริ่มเขียนภาษา Python : เริ่มเขียน Function

       Function การทำงาน หน้าที่และ ประโยชน์
* function ยังเรียกว่า subroutine, procedure, method ได้อีกด้วย
** ตัวแปรที่ประกาศใน Function จะเป็น local คือสามารถมองเห็นได้ใน function นั้น เท่านั้น ส่วนตัวแปรที่ประกาศไว้นอก function จะเป็นตัวแปรแบบ global คือทุก functionนั้นสามารถมองเห็นและใช้ได้
***ควรหลีกเลี้ยงการตั่งชื่อตัวแปร แบบ global และ local ซ้ำกัน
 > แบ่งการทำงานของโปรแกรมเป็น Function ย่อย (หน้าที่ย่อย)
> เพื่อความสะดวกในการอ่านและเขียนโปรแกรม แยกส่วนโค้ดที่นกลับมาใช้ไหม่อีกและ ทำให้การทำงานในส่วนบางส่วนซ้ำๆสามารถอ่านและ เข้าใจง่ายมากขึ้น
       ตัวอย่าง Function การคำนวณหาพื้นที่วงกลม


       การประกาศ function สามารถทำได้โดยพิมพ์ def [ชื่อfunction] () : และ เนื่องจากภาษา Python ไม่มีการใช้วงเล็บปีกกา {} บอกของเขตแต่ภาษา Python ใช้เป็นการย่อหน้าแทน การย่อหน้าสามารถทำได้โดยการกด tap
http://www.techonthenet.com/clipart/keyboard/images/tab_key1.png

จากตัวอย่างจเห็นได้ว่าคำสั่งทั้ง4 บรรทัดอยู่ใน function calAreaOfCircle 

แต่ function จะไม่สามารถทำงานได้ หาไม่ได้เรียกใช้ function นั้น ดั่งนั้นต้องมีส่วนเรียนใช้ด้วย คือบรรทัดล่างสุด calAreaOfCircle()
ผลลัพธ์ที่ได้

เราสามารถส่งค่าให้ function เพื่อให้สามารถทำงานได้หลากหลายมากขึ้น
ตัวอย่าง function ที่รับค่าเข้าไปใช้ใน function 

       จากภาพจะเห็นได้ว่า ครั้งแรก function ทำงานและให้ค่า radius = 5 และ แสดงผลลัพธ์ออกมาและ ครั้งที่สอง กำหนดให้ค่า radius = 10 และ แสดงผลลัพธ์ออกมา ตัวแปรในวงเล็บเรียกว่า parameter หรือ argument
       เมื่อประกาศ argument แล้วสามารถเอา argument นั้นไปใช้ใน Function ได้เลย จากภาพจะเห็นว่าไม่ต้องประกาศตัวแปร radius อีกครั้ง ก็สามารถเอา radius ไปใช้ได้เลย
ผลลัพธ์ที่ได้
เราสามารถประกาศ argument ได้หลายตัวด้วย เช่น
เป็น function ข้อมูลประชากร เก็บค่า ชื่อ อายุและ ที่อยู่

       function ข้างต้นทั้งหมดคือ function ที่ไม่ส่งค่ากลับคือ ทำงานเมื่อถูกเรียกใช้จนเสร็จแล้วไม่มีการส่งค่าไดๆ กลับไปยังจุดที่เรียกใช้ function นั้น 
เราสามารถเขียน function ซ้อนกันได้ ประมาณนี้

function ที่ส่งค่ากลับ
       การส่งค่ากลับ นั้นสามารถทำได้ด้วยคำสั่ง return โดยค่าที่เราส่งกลับไป(return) นั้น จะส่งกลับไปตรงจุดที่เราเรียนใช้
มาดูตัวอย่างกัน
จากภาพจะเห็นได้ว่า เรียกใช้ function ในคำสั่ง print แล้ว ต่าก็ถูกส่งกลับมาตรงจุดที่ถูกเรียกใช้เป็นตัวเลขแล้วแสดงผลลัพธ์ 

ส่งค่ากลับเป็นตัวแปรชนิดอืนก็ได้น่ะไม่ใช่แค่ตัวเลข





recursive function เดียวเขียนพร้อมๆกับ loop น่ะ :)
function default parameter ก็ด้วยน่ะ 
แล้วก็การ import ด้วย 55555

ถ้าสงใสก็ทักถามพวกพี่ๆ ได้น่ะ หรือไม่ก็บางคำเขียนผิดอะไรงี้ ก็ทักมาบอกพี่ก็ได้ คือทำคนเดียว T-T พี่เปา น่ะ ที่เขียน :) 


แบบฝึก เอาไร ดี 55555งั้น มีหา พื้นที่วงกลมแล้ว เรามาหาปริมาตร ทรงกลมกันดีกว่า :) สูตรด้านล่างเลยจร้า 
ให้เขียน function คำนวนหาปริมาณ โดย คำสั่งแสดงผล 
radius =  [ขนาดรัศมี]: Volume =  [ปริมาตร]

คิดไม่ออกอ่ะอันนี้ ข้อเดียว พอ เดียวค่อยไปเยอะใน if else  เป็นต้นไป เนอะ เนอะ เนอะ 5555 


No comments:

Post a Comment