สวัสดีค่ะ ยินดีต้อนรับเข้าสู่เว็บไซต์ hongkrunan.in.th แหล่งการเรียนรู้ออนไลน์วิชาวิทยาการคำนวณ
สวัสดีค่ะ ยินดีต้อนรับเข้าสู่เว็บไซต์ hongkrunan.in.th แหล่งการเรียนรู้ออนไลน์วิชาวิทยาการคำนวณ
หน่วยการเรียนรู้ที่ 3
ภาษาไพทอน
จุดประสงค์การเรียนรู้
1.นักเรียนสามารถออกแบบและเขียนโปรแกรมที่มีการใช้งานตัวแปรได้
2.นักเรียนสามารถออกแบบและเขียนโปรแกรมที่ทำงานแบบมีทางเลือกได้
3.สามารถออกแบบและเขียนโปรแกรมที่มีการทำงานแบบวนซ้ำได้
4.นักเรียนสามารถเขียนโปรแกรมเพื่อแก้ปัญหาทางคณิตศาสตร์หรือวิทยาศาสตร์
เป็นภาษาที่จัดอยู่ในกลุ่มภาษาระดับสูง วัตถุประสงค์ของการสร้างภาษาไพทอนขึ้นมาก็คือเป็นการนำข้อดีของภาษาต่าง ๆ มารวมไว้ด้วยกัน มีไวยากรณ์ที่ช่วยให้การเขียนโค้ดสั้นกว่าภาษาอื่น ๆ ทำให้เราจดจำคำสั่งต่าง ๆ
โหมดอิมมีเดียท เป็นโหมดที่ผู้ใช้พิมพ์คำสั่งลงไปทีละคำสั่ง และตัวแปลภาษาไพทอนก็จะแปลคำสั่งนั้น ในกรณีที่ผู้ใช้เขียนคำสั่งต่าง ๆได้ถูกต้อง โปรแกรมก็จะแสดงผลลัพธ์ทันที แต่หากผู้ใช้เขียนคำสั่งผิด โปรแกรมก็จะขึ้นแจ้งเตือนผู้ใช้งาน
โหมดคลิปต์ เป็นโหมดที่ผู้ใช้เขียนคำสั่งต่าง ๆ จนสมบูรณ์ และบันทึกเป็นโปรแกรมที่สมบูรณ์ เพื่อที่จะสั่งให้ตัวแปลภาษาได้แปลให้เป็นภาษาเครื่อง โดยจะแปลที่ละคำสั่ง
คำสั่งเบื้องต้นของภาษา python ที่จะเรียนรู้คือคำสั่งที่ใช้แสดงผลทางจอภาพและคำสั่งที่ใช้ในการรับข้อมูลเข้าจากผู้ใช้ผ่านทางคีย์บอร์ด ในขั้นเริ่มต้นนี้จะใช้คำสั่ง python ในโหมดอิมมีเดียท ดังตัวอย่างต่อไปนี้
เปิดโปรแกรม PyCharm หรือ โปรแกรมเขียนภาษาไพทอนออนไลน์ เพื่อทำการเขียนคำสั่งแสดงผล
จากตัวอย่างอธิบายได้ว่า print() เป็นคำสั่งชนิดฟังก์ชัน(function) ทำหน้าที่แสดงสิ่งที่อยู่ภายในเครื่องหมายวงเล็บ () ออกทางจอภาพ ให้สังเกตผลลัพธ์ที่ได้ว่า ไม่มีเครื่องหมาย “”
รูปแบบการเขียนฟังก์ชัน คำสั่งชนิดฟังก์ชันใน python เช่น print () และ input () จะมีเครื่องหมายวงเล็บต่อท้ายเสมอ โดยทั่วไปฟังก์ชันจะนำข้อมูลที่ผู้ใช้กำหนดในวงเล็บเข้าไปประมวลผล ตามที่ function ได้ถูกออกแบบมา ชนิดและจำนวนของข้อมูลที่ผู้ใช้ต้องกำหนดในแต่ละฟังก์ชันจะแตกต่างกันออกไป
คำสั่งรับข้อมูลเข้า
ทดลองพิมพ์คำสั่งต่อไปนี้ในคอนโซล แล้วกดแป้น Enter
จากตัวอย่างอธิบายได้ว่า บรรทัดแรกเป็นการกำหนดค่าให้ตัวแปร name มีค่าเป็น “Ying” หลังจากนั้นบรรทัดที่ 2 จะแสดงค่าในตัวแปร name ออกมาทางจอภาพ ซึ่งก็คือคำว่า Ying
หมายเหตุ : ไพทอนจะใช้สัญลักษณ์ # แสดงจุดเริ่มต้นของคอมเมนต์ (comment) ในแต่ละบรรทัด
>?_# เครื่องหมาย >? เป็นเครื่องหมายการรอให้ผู้ใช้ป้อนข้อมูลของ PyCharm Edu
จากนั้นให้ผู้ใช้ป้อนชื่อตนเอง เช่น ป้อนชื่อว่า Prayut
จากตัวอย่าง input() เป็นคำสั่งชนิดฟังก์ชัน (function) ทำหน้าที่รับข้อมูลเข้าที่ผู้ใช้ป้อนผ่านคีย์บอร์ด แล้วส่งคืนสิ่งที่ผู้ใช้ป้อนเข้ามาเป็นข้อมูลชนิดสตริง ให้กับตัวแปรที่กำหนดไว้หน้าเครื่องหมาย = ในที่นี้คือตัวแปร name
หลังจากนั้นบรรทัดที่ 2 จะแสดงค่าในตัวแปร name ออกมาทางจอภาพ ซึ่งก็คือคำว่า Prayut
ใช้ในการอ้างอิงค่าข้อมูล โดยตัวแปรจะถูกกำหนดค่าด้วยเครื่องหมาย = เช่น
สำหรับการตั้งชื่อตัวแปรในไพทอน ชื่อตัวแปรประกอบไปด้วยตัวอักษร ตัวเลข หรือ เครื่องหมายขีดเส้นใต้เท่านั้น โดยต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมายขีดเส้นใต้ นอกจากนี้ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จะถือว่าแตกต่างกัน ดังนั้น ตัวแปรชื่อ count และ Count จึงเป็นตัวแปรคนละตัวกัน นอกจากนี้ชื่อตัวแปรที่ตั้งขึ้นจะต้องไม่ซ้ำกับคำหลัก (keyword) ที่ไพทอนใช้เป็นคำสั่ง โดยคำหลักมีดังต่อไปนี้
ตัวอย่างการเปลี่ยนค่าของตัวแปร
พิมพ์คำสั่งต่อไปนี้ในคอนโซล
จากตัวอย่างอธิบายได้ดังนี้
1.c = 16 เป็นคำสั่งกำหนดให้ตัวแปร c ชี้ไปจำนวนเต็ม 16 เมื่อแสดงผลด้วยคำสั่ง print () จึงได้ผลลัพธ์เป็น 16
2.d = c เป็นคำสั่งสร้างตัวแปร d แล้วชี้ไปที่เดียวกับที่ตัวแปร c ชี้อยู่ จึงทำให้ตัวแปร d ชี้ไปยังจำนวนเต็ม 16 เมื่อพิมพ์ด้วยคำสั่ง print (d) จึงได้ผลลัพธ์เป็น 16
3.d = 15 เป็นคำสั่งกำหนดให้ตัวแปร d ชี้ไปที่จำนวนเต็ม 15 เมื่อแสดงผลด้วยคำสั่ง print (d) จึงได้ผลลัพธ์เป็นค่า 15
การเปลี่ยนแปลงค่าของตัวแปร c และ d ที่เกิดขึ้นตามคำสั่งในตัวอย่างแสดงรูปดังนี้
โปรแกรมภาษาไพทอนมีการแบ่งประเภทของข้อมูลออกเป็นหลายประเภท โดยมีประเภทข้อมูลพื้นฐาน คือ
• ข้อมูลประเภทข้อความ (String data type)
• ข้อมูลประเภทจำนวน (numerical data type)
ข้อมูลประเภทข้อความ (String data type)
การกำหนดเครื่องหมายอัญประกาศครอบข้อความที่ต้องการกำหนด ข้อความที่เป็นข้อความหรือสตริง ให้ใช้โดยเลือกใช้ได้ทั้งอัญประกาศเดี่ยว (‘) หรือคู่ (“) ตามความเหมาะสม หรือกรณีที่มีข้อความยาวหลายบรรทัด ต้องใช้เครื่องหมาย “ หรือ ‘ ติดต่อกัน 3 ตัว ครอบหน้าและหลังข้อความ ดังตัวอย่างต่อไปนี้
จากตัวอย่างอธิบายได้ดังนี้
1.คำสั่งในบรรทัดที่ 1 เป็นการใช้เครื่องหมายอัญประกาศเดี่ยวเพื่อกำหนดตัวแปร organization เป็น “สสวท” ทำให้มีความยาว 6 ตัวอักษร (รวมเครื่องหมายอัญประกาศคู่ด้วย)
2.คำสั่งในบรรทัดที่ 2 ใช้เครื่องหมายอัญประกาศคู่เพื่อกำหนดสตริงให้กับตัวแปร address
3.คำสั่ง Print() ในบรรทัดที่ 3 และ 4 นำค่าในตัวแปร organization และ address ออกมาแสดงผล
4.คำสั่งในบรรทัดที่ 5 ใช้เครื่องหมาย ‘ จำนวน 3 ตัว กำหนด String จำนวน 4 บรรทัด ให้กับตัวแปร address
คำสั่งในบรรทัดที่ 6 นำค่าที่เก็บในตัวแปร address ออกมา
ข้อมูลประเภทจำนวน (numerical data type)
ภาษา python มีข้อมูลจำนวนที่สามารถนำไปคำนวณทางคณิตศาสตร์ได้หลายชนิด ในที่นี้จะแนะนำ 2 ชนิดคือ
• จำนวนเต็มแบบมีเครื่องหมาย (signed integer) หรือเรียกว่าจำนวนเต็ม (integer หรือ int) สามารถเก็บค่าจำนวนเต็มบวกและจำนวนเต็มลบ
• จำนวนจริง (floating point number หรือ float) สามารถเก็บค่าทั้งจำนวนจริงบวกและจำนวนจริงลบ ที่อยู่ในรูปทศนิยมได้
การกำหนดข้อมูลจำนวนและการคำนวณพื้นฐาน
จากตัวอย่างอธิบายได้ว่า
1. บรรทัดที่ 1 และ 2 กำหนดให้ตัวแปร base และ height ชี้ไปที่ 10 และ 15 ตามลำดับ
2. บรรทัดที่ 3 กำหนดให้ตัวแปร area ชี้ไปที่ผลจากการคำนวณ (1/2) * base * height ซึ่งเป็นการหาพื้นที่สามเหลี่ยมนั่นเอง (เมื่อใช้เครื่องหมาย * และ / กับข้อมูลจำนวน จะหมายถึง การคูณ และการหาร ทางคณิตศาสตร์ตามลำดับ
3. บรรทัดที่ 4-6 เป็นคำสั่งแสดงผลของตัวแปรมีข้อสังเกตว่าคำสั่ง print () สามารถรับค่าที่ต้องการให้แสดงผล ได้มากกว่า 1 ค่า โดยเขียนแต่ละค่าหรือแต่ละตัวแปรเรียงกันไป คั่นด้วยเครื่องหมายจุลภาค (,) เช่น บรรทัดที่ 4-6 สามารถเขียนรวมกันได้ดังนี้
print("base = ",base, "height = ",height, "area =", area)
4. สังเกตอีกว่า คำสั่งในบรรทัดที่ 6 ได้ผลลัพธ์ของตัวแปร area แสดงออกมาใน
รูปแบบจำนวนจริง
ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการสำหรับการบวก ลบ คูณและหารในไพทอนจะใช้เครื่องหมาย + , - , * และ / ตามลำดับ นอกจากนี้ยังมีเครื่องหมายเพิ่มเติม เช่น
** หมายถึง ยกกำลัง ตัวอย่างคือ 4**3 หมายถึง 4 ^ 3
// หมายถึง หารปัดเศษทิ้ง ตัวอย่างคือ 7//3 ได้ผลลัพธ์เป็นจำนวนเต็ม 2
% หมายถึง เศษที่ได้จากการหาร ตัวอย่างคือ 7%3 ได้ผลลัพธ์เป็นจำนวนเต็ม 1
โดยสามารถใช้เครื่องหมาย () ล้อมรอบ นิพจน์ที่ต้องการให้
ดำเนินการก่อน เช่นเดียวกับการเขียนนิพจน์ทางคณิตศาสตร์
ตัวอย่าง เรื่อง ทอนเท่าไหร่
นักเรียนซื้อแฟลชไดรฟ์ขนาด 32 GBราคา 117 บาท ที่ร้านสะดวกซื้อ โดยจ่ายเงินด้วยธนบัตร 100 บาท 2 ใบ ในลิ้นชักเก็บเงินของร้าน มีแต่ธนบัตร 20 บาท และเหรียญ 1 บาท พนักงานจะต้องทอนเงินเป็นธนบัตร 20 บาท จำนวนกี่ใบ และเหรียญ 1 บาทจำนวนกี่เหรียญ ให้ใช้คำสั่ง python แสดงวิธีการหาคำตอบทีละลำดับ
แนวคิดการแก้ปัญหา
1.คำนวณจำนวนเงินทอน
2.คำนวณจำนวนธนบัตรยี่สิบบาทที่ได้รับ จากจำนวนเงินทอน หารด้วย 20 โดยปัดเศษทิ้ง
3.คำนวณจำนวนเหรียญบาทที่ได้รับ จากจำนวนเงินทอน หารด้วย 20 โดยนำมาเฉพาะเศษที่ได้จากการหาร
ฟังก์ชัน input () จะรับข้อมูลเข้าจากผู้ใช้ทางคีย์บอร์ด และจะเป็นข้อมูลชนิดสตริงเท่านั้น ซึ่งไม่สามารถนำไปคำนวณทางคณิตศาสตร์ได้
ไม่ได้ เพราะ หากพิมพ์คำสั่งในคอนโซลจะมีข้อผิดพลาดจากการทำงาน ในคำสั่ง area = width * length เพราะตัวแปร width และ length จะเก็บข้อมูลสตริง แม้ว่าผู้ใช้จะป้อนข้อมูลเป็นตัวเลขก็ตาม ดังนั้นหากต้องการนำค่าที่ได้รับจากฟังก์ชัน input() ไปใช้ในการคำนวณทางคณิตศาสตร์ จะต้องแปลงให้เป็นข้อมูลชนิดจำนวนก่อน โดยใช้ฟังก์ชัน int() เพื่อแปลงสตริงเป็นจำนวนเต็มหรือฟังก์ชัน float() เพื่อแปลงสตริงเป็นจำนวนจริง
การแปลงข้อมูลสตริงให้เป็นข้อมูลชนิดจำนวน
จากตัวอย่างอธิบายได้ดังนี้
1. หลังจากไพทอนรันคำสั่งในบรรทัดที่ 1 และผู้ใช้ป้อนตัวอักขระ "4" แล้วตัวแปร val จะเก็บข้อมูลสตริง ของอักขระ "4" ซึ่งตรวจสอบได้จากคำสั่ง type(val) ในบรรทัดที่ 2
2. บรรทัดที่ 3 ใช้ฟังก์ชั่น int() ในการแปลงค่าสตริงของตัวแปรให้เป็นจำนวนเต็ม แล้วกำหนดค่าให้กับตัวแปร intVal ซึ่งตรวจสอบชนิดได้จากคำสั่งในบรรทัดที่ 4
ตัวอย่าง เรื่อง ร่วมด้วยช่วยแชร์
ถ้านักเรียนไปรับประทานอาหารฉลองวันปิดเทอมกับเพื่อนๆ และตกลงกันว่าจะจ่ายค่าอาหารคนละเท่าๆกัน นักเรียนแต่ละคนจะต้องจ่ายค่าอาหารคนละเท่าใด ให้ใช้คำสั่งไพทอนแสดงวิธีการหาคำตอบทีละลำดับ