โจท
จงเขียนโปรแกรมรับค1าชอื่ ตนเอง และตวั
จากน้นั ส1งขAอมลู ท้งั สองไปยังฟงF กชG ันชือ่ p
โดยฟFงกชG นั print_name() มีหนAาทพี่ ิมพ
ทย%
วเลขจำนวนเต็ม 1 จำนวน
print_name()
พGชอื่ ตามจำนวนเลขทร่ี ับเขาA มา
การคนื ค'าจ
การคืนค'าจากฟ*งก,ชัน เป2นการส'งค'าจากฟ*ง
หรือผลลัพธจ, ากการทำงานของฟ*งกช, ันไปใชป? ระโยช
รปู แบบคำสั่งในการคืนค'าจากฟง* ก,ชัน
return นิพจน,/ตัวแปร
ยกตัวอย'างการคืนค'าจากฟ*งก,ชัน เช'น กา
ฟ*งก,ชัน sqrt() จะพบว'าในการใช?ฟ*งก,ชันนี้ ผู?เขียน
ฟ*งกช, ัน จากน้ันฟ*งกช, ันจะทำงานตามท่เี ขยี นโปรแกร
x = math.sqrt(9)
จากฟ*งกช, ัน
งก,ชันกลับมายังฟ*งก,ชันหลัก ซึ่งทำให?สามารถนำค'า
ชนใ, นภายหลังได?
ารใช?ฟ*งก,ชันทางคณิตศาสตร,จากไลบรารี math
นโปรแกรมจะต?องระบุค'าอาร,กิวเมนต,ที่จะส'งไปยัง
รมไวแ? ละสง' ค'าผลลัพธก, ลบั มา ดังตัวอยา' งต'อไปน้ี
ตวั อยา& งโปรแกรมที่มกี ารคนื คา& จากฟ
ฟง7 กช8 นั
บรรทดั ที่ 1 สร+างฟง/ กช1 นั ชอ่ื print_name มีพาราม
บรรทัดที่ 2 นำคาM จากตวั แปร name และ surnam
บรรทัดที่ 3 สงM คMาตวั แปร fullname คืนไปยงั ฟ/งก1ช
บรรทัดท่ี 5-6 รับขอ+ ความเกบ็ ไวใ+ นตัวแปร firstnam
บรรทดั ที่ 7 เรียกใชฟ+ /งกช1 นั print_name และมีตวั แ
บรรทดั ท่ี 8 แสดงผลตวั แปร name ออกทางหน+าจอ
มิเตอร1 2 ตวั คอื name และ surname
me มาเชอ่ื มตอM กัน เก็บไวท+ ่ตี ัวแปร fullname
ชันหลกั
me และ lastname
แปร name รับคMาคนื จากฟง/ ก1ชัน
อ
โจท
จงเขียนโปรแกรมรบั ความยาวฐาน และค
จากนน้ั ส=งทั้งสองค=าไปยงั ฟงA กBชนั triangl
แลSวสง= ค=ากลบั มายังฟAงกBชนั หลักเพื่อแสด
ทย%
ความสูงของสามเหลีย่ ม
le_area() เพือ่ คำนวณหาค=าพน้ื ที่
ดงผล
ขอบเขตข
ขอบเขตของตวั แปร (scope of
แปรที่นิยามขึ้นในโปรแกรม ขอบเขตของตัวแป
variable) และตัวแปรสวR นกลาง (global varia
จากตำแหนงR ท่ตี วั แปรนัน้ ถูกนิยามขึ้น
ตัวแปรเฉพาะที่เป\นตัวแปรที่นิยามอยูRในบ
และจะถูกอาD งอิงไดDภายในบล็อกของฟ^งกช_ ันดงั กล
ตัวแปรสRวนกลางเป\นตัวแปรที่นิยามอยูRใน
ในบล็อกของทุกฟง^ ก_ชัน
องตัวแปร
variable) หมายถึง ขอบเขตในการอDางอิงตัว
ปรมี 2 ลักษณะ ไดDแกR ตัวแปรเฉพาะที่ (local
able) ตัวแปรทุกตัวมีขอบเขตอยูRในบล็อก เริ่มตDน
บล็อกของฟ^งก_ชันนับจากตำแหนRงที่เริ่มตDนนิยาม
ลRาวเทาR นัน้ ไมสR ามารถอาD งองิ ในบลอ็ กอน่ื ไดD
นบล็อกของโปรแกรมหลัก และสามารถอDางอิงไดD
การอ7างถงึ ตัวแปร
ตัวอยา& งโปรแกรม
ผลการรนั โปรแกรมจะพบข7อผิดพลาดดงั นี้
บรรทัดที่ 1 นยิ ามตวั แปร y ใหม7 ีคา& เปนE 5
บรรทัดท่ี 2 แสดงผลคา& y ออกทางหน7าจอ
บรรทัดที่ 3 แสดงผลค&า x ออกทางหน7าจอ
ขอ7 ผิดพลาดในการทำงานของโปรแกรม แมว7 า& จะน
อ
อ ซึ่งตัวแปร x ยังไม&ได7ถูกนิยามไว7ก&อน ทำให7เกิด
นิยาม x ไวใ7 นบรรทัดที่ 4 ก็ตาม
ตวั แปรเฉพาะที่ คอื ตัวแปรที่ใชใ8 นเฉพ
ตัวอย&างโปรแกรม เม่ือรนั โปรแ
ให8นักเรียนสังเกตบรรทัดที่ 5 จะเห็นว&ามีก
การนิยามตัวแปร y ไว8ในฟJงกKชันหลัก แม8ว&าจะม
ตาม
เนื่องจากตัวแปร y ในฟJงกKชันย&อยนั้นสาม
ฟJงกชK นั หลกั ไดน8 ัน่ เอง
พาะบล็อกหรือฟงJ กชK นั ใดๆ เทา& น้ัน
แกรมจะพบข8อผิดพลาดดังนี้
การแสดงค&าตัวแปร y ออกทางหน8าจอ แต&ยังไม&มี
มีการเรียกใช8ฟJงกKชันย&อย func ในบรรทัดที่ 6 ก็
มารถใช8ได8ในฟJงกKชันย&อยเท&านั้น ไม&สามารถใช8ใน
ตวั แปรตวั ส&วนกลาง คอื ตัวแปรทสี่ าม
ตวั อยา& งโปรแกรม เม่ือร
บรรทดั ที่ 5 นิยามตัวแปร x ใหม6 ีคา& 8
บรรทัดท่ี 6 แสดงขอ6 ความและคา& ตัวแปร
บรรทัดที่ 7 เรียกใช6ฟOงก;ชัน func() ซึ่งจ
บรรทัดที่ 3 ด6วย ซึ่งสามารถแสดงผลได6 เพราะ
โปรแกรมหลักแล6ว
มารถใชไ6 ดท6 ุกส&วนในโปรแกรม
รันโปรแกรมไดผ6 ลลัพธด; งั นี้
x ทางหน6าจอ
จะเห็นว&าในฟOงก;ชันนี้มีการแสดงค&าตัวแปร x ใน
ะตัวแปร x ได6นิยามไว6เป[นตัวแปรส&วนกลางใน
ผลการรันโปรแกรมตอ- ไปนี้จะเกดิ ผล
ลอย-างไร เพราะเหตใุ ด
ลองคิด…ลองเข
ใหน้ กั เรียนเขยี นโปรแกรมตามขอ้ กำหน
1. ให้นักเรยี นเขียนสร้างฟงั กช์ นั ชอื่ BM
(cm) จากฟงั ก์ชนั main() แลว้ ส่งค่านำ้
BMI
2. เม่อื ฟงั กช์ นั คำนวณค่า BMI เสร็จแลว้
3. แล้วนำค่า BMI ท่สี ่งกลบั มายังฟงั ก์ช
Dicision ตดั สินใจว่า "ผอม" "ปกต"ิ "เก
ขียนโปรแกรม
นด ดังน้ี
MI โดยรับค่านำ้ หนัก (kg) และความสูง
ำหนักและความสงู ไปคำนวณท่ีฟังก์ชนั
ว ให้สง่ ค่ากลบั มายงั ฟงั กช์ ัน main()
ชนั main() สง่ ไปให้ฟงั ก์ชนั ชอ่ื
กินเกณฑ์" "อว้ น" หรือ "อว้ นมาก"
Python
n Turtle
นายณฐั พล บวั อไุ ร
โรงเรยี นสวนกหุ ลาบวทิ ยาลยั รังสิต
Python Tur
rtle คืออะไร?
คำสั่งท
• turtle.Turtle() เปน็ คำสงั่ สำหรับดงึ คำสง่ั ตา่
แทนคำสั่งนี้
• turtle.forward() ลากเสน้ ตรงไปข้างหน้ามหี
• turtle.left() หนั ไปทางขวา ทำมุมตามองศาท
• turtle.right() หนั ไปทางซ้าย ทำมมุ ตามองศ
• turtle.color() เป็นคำสั่งกำหนดสีใหก้ ับเสน้
• turtle.mainloop() เปน็ คำส่ังลปู ค้างหน้าจอ
• turtle.pensize() เป็นคำสัง่ ปรับขนาดความ
ทส่ี ำคญั
าง ๆ ที่เก่ยี วกบั การวาดรปู มาทำงาน มักใช้ตัวแปร
หนว่ ยเปน็ พกิ เซล
ที่กำหนดจากมมุ เดิม
ศาที่กำหนดจากมมุ เดมิ
(ช่ือสีในภาษาองั กฤษ)
อไวส้ ำหรบั รอวาดรปู ตอ่
มหนาของเสน้
คำสัง่ ท
• คำส่ัง turtle.Screen() เปน็ คำสง่ั ต้งั คา่ หนา้ ต
turtle.Turtle()
• คำสั่ง Screen.title() เป็นคำสัง่ กำหนดหวั ข้อ
• คำส่งั Screen.bgcolor() เปน็ คำสงั่ กำหนดส
"yellow" เปน็ ตน้ )
• คำสั่ง Screen.screensize(ความกวา้ ง ความ
หน่วยเป็นพิกเซล
ทส่ี ำคัญ
ตา่ งใหว้ ัตถุ ต้องใช้คำสง่ั น้ีกอ่ นคำส่งั
อ
สีภาพพื้นหลัง (ช่ือเปน็ ภาษาอังกฤษ เช่น
มสูง) เปน็ คำส่งั กำหนดขนาดใหก้ ับหน้าตา่ ง มี
โรงเรยี นวังหนิ วทิ ยาคม
สาํ นกั งานเขตพ้ืนท่กี ารศึกษามธั ยมศกึ ษา นครศรีธรรมราช
สาํ นักงานคณะกรรมการการศึกษาขน้ั พนื้ ฐาน กระทรวงศึกษาธกิ าร