หลังจากที่ได้ทราบ วิธีสร้างตัวแปรไปแล้ว ต่อไป มาลองใช้สัญลักษณ์ทางคณิตศาสตร์ (Mathematical Operator) จัดการตัวแปรในไพธอน กัน นะครับ
ใน Python นั้น มีสัญลักษณ์ทางคณิตศาสตร์ให้เลือกใช้มากมาย ซึ่งขอจับคู่อธิบายให้เข้าใจง่ายๆดังนี้
-
+ บวก และ – ลบ
-
* คูณ (ไม่ใช้ x) และ / หาร (ไม่ใช้ ÷)|
-
// หารแบบไม่เอาเศษ (floor division) และ % โมดูโล หรือ หาส่วนที่เหลือจากการหาร (ถ้าไม่เก็ท รอชมตัวอย่างครับ)
-
** ยกกำลัง ส่วนการ หารูท(root) ก็ใช้อันเดียวกับยกกำลังนั้นหละ เดี๋ยวจะบอกให้ว่าทำอย่างไร
มาดูตัวอย่างจาก Code บวกและ ลบ กันก่อน
print (5 – 2)
ผลลัพท์ที่ได้
3
เราสามารถเก็บค่าไว้ในตรวจแปรก่อนที่จะนำไปคำนวนก็ได้นะ มาลอง คูณ และ หารกัน
y = 2print ((x + y) * 2)
print ((x + y) / 2)
ผลลัพท์ที่ได้
3.5
ต่อไปจะเป็นตัวที่เราไม่ค่อยได้ใช้ในชีวิตประจำวันคือ // หารไม่เอาเศษ กับ % โมดูโล
print (17 % 5 )
ผลลัพท์ที่ได้
2
จาก code เมื่อเอา 17 หารปกติด้วย 5 จะได้ 3.4 เมื่อเราใช้สัญลักษณ์ // เราจะไม่สนใจทศนิยม จะหยิบมาแค่ตัวหน้าทำให้ได้ค่าเท่ากับ 3
สำหรับ % เมื่อ 17 หาร ด้วย 5 ไม่ลงตัว ซึ่งจำนวนที่ใกล้เคียงที่สุดที่ 5 จะหาร 17 ได้คือ 15 เมื่อเอา 17-15 ก็จะเหลือ 2 ซึ่งการใช้เครื่องหมาย % จะหาค่าส่วนที่เหลือจากการหารให้ลงตัวนั้นเอง
ถ้าเราเขียนเป็นสมการหาค่า % ก็จะได้ดังนี้
ตัวตั้ง – (ตัวหาร * ผลลัพท์จาก //)
ในกรณีนี้คือ 17 – (5 * 3) = 2
ซึ่งมาถึงจุดนี้หลายคนอาจจะสงสัยว่าเจ้า % และ // เอาไปใช้ทำอะไรได้บ้าง โดยมากแล้วจะใช้ช่วยการตรวจสอบค่าต่างๆ เช่น แยกเลขคู่ หรือ เลขคี่ หรือ คำนวนการจับเวลา เป็นต้น
จะสังเกตุว่าการใช้ // ผลที่ออกมาได้จะไม่มีเศษ จึงทำให้ข้อมูลที่ออกมาได้จะเป็น ข้อมูลประเภท int เสมอ
ซึ่งต่างกับการใช้ / ต่อให้ผลหารออกมาลงตัว ข้อมูลที่ได้ก็จะออกมาเป็น float เสมอ
y = 15 / 5print (x)
print (y)print (type(x))
print (type(y))
มาดูผลลัพท์
3.0<class ‘int’>
<class ‘float’>
ต่อไปเป็นคู่ของการยกกำลังและ ถอดรูท ในตัวอย่างนี้จะยกกำลัง 9 ด้วย 2 และ ถอดรูท 2 ของ 9
print (9**(1/2))
ผลที่ได้คือ
3.0
บรรทัดแรก 9 ยกกำลัง 2 ก็เท่ากับ 81 อันนี้ตรงตัวง่ายๆครับ
ส่วนบรรทัดที่สองอันนี้อาศัยความรู้ทางคณิตศาสตร์นิดหน่อย หารูท 2 นั้น จริงๆแล้วก็เท่ากับ ยกกำลังด้วย 1/2 นั่นเอง ซึ่งหากเราต้องการหารูทที่ 3 ก็สามารถเปลี่ยนเป็น 1/3 ได้ ตามสูตร
ถ้าใครสนใจเรื่องรูทที่ n ไปอ่านต่อได้ที่ Wikipedia |
หลังจากได้เรียนรู้การคำนวณแบบต่างๆไปแล้ว มีความลับบางอย่างอยากจะบอกให้ทราบครับ
ลองดู Code นี้
คิดว่าคำตอบได้เท่าไหร่ครับ บางคนบอกว่าน่าจะเป็น 13 (10 + 3) บางคนว่าน่าจะเป็น 16 (2 * 8)
เราไปถาม Python กัน
ที่ออกมาเป็น 13 ก็เพราะว่าการคำนวนนั้นมีลำดับก่อนหลัง โดยมีกฏการเรียงลำดับที่เรียกว่า
“PEMDAS” ซึ่งย่อมาจาก
- Parentheses (ในวงเล็บ) – ทำเป็นอย่างแรกสุด
- Exponent (ยกกำลัง)
- Multiply (คูณ)
- Division (หาร)
- Addition (บวก)
- Subtraction(ลบ) – ทำเป็นอย่างสุดท้าย
ซึ่งนอกจากจะเรียงตาม PEMDAS แล้ว เราต้องเริ่มจากซ้ายไปขวาด้วยนะ
แน่นอนครับว่าถ้าใครไม่ค่อยมีชีวิตข้องแวะกับสมการคณิตศาสตร์ หรือ การเขียนโปรแกรม แรกๆก็จำไม่ได้หรอกครับ (ผมเองก็เช่นกัน) แนะนำว่าให้จำเป็นคู่ครับ เริ่มจาก
วงเล็บ ยกกำลัง | คูณหาร และ บวกลบ
และอีกวิธีหนึ่งที่ช่วยให้จำได้ง่ายขึ้นคือลองเล่นดูเลย ลองพิมพ์สมการต่างๆของเราเอง แล้วดูว่า Python ให้ผลออกมาเหมือนที่เราคาดไว้ไหมอย่างเช่น
มาถอดลำดับกันตาม PEMDAS เริ่มจาก
ขั้นที่ หนึ่ง (ยกกำลัง) 3**2 = 9
ชั้นที่ สอง (คูณ) 9 * 7 = 63
ขั้นที่ สาม (หาร) 4/2 = 2
ชั้นที สี่ (บวก) 63 (จากขั้นสอง) + 8 = 71
ขั้นที่ ห้า (ลบ) 71 -2 (จากขั้นสาม) = 69
เช็คผลกับ Python กัน
และอย่าลืมวงเล็บผิด ชีวิตเปลี่ยน ลองเอาโจทย์นี้ไปทำกันเล่นๆครับ
print(( 4/2 + (3**2 – 5+9 )))
Run Code ตามนี้ แล้วค่อยๆคิดตามลำดับแบบตัวอย่างข้างบน ก็จะพบว่าผลลัพท์นั้นต่างกันเพราะอะไรนะ ถ้าใครสงสัย Comment ถามได้เลย
จะเห็นได้ว่าในบทนี้ เราใช้ข้อมูลประเภท int และ float กับ สัญลักษณ์คณิตศาสตร์ ทั้ง แต่รู้หรือไม่ว่าใน Python เราสามารถใช้สัญลักษณ์เหล่านี้กับข้อมูลประเภทตัวอักขระ (str) ได้ด้วยเช่นกัน ติดตามชมตอนที่ 4 ได้เร็วๆนี้ครับ
กด Like กด Share กันได้นะครับ และ ยังสามารถกดติดตาม Facebook ของเราได้ที่นี่ หรือ Follow ใน Twitter เพื่อ ให้ทีมงาน AI Informatics มีกำลังใจผลิตเนื้อหาต่อไปครับ ขอบคุณครับ