2.2
2.2
วิชา การเขียนโปรแกรม Python กลุ่มสาระการเรียนรู้ วิทยาศาสตร์และเทคโนโลยี
เรื่อง นิพจน์และตัวดำเนินการ (Expression and operators)
นิพจน์ (expression) ในไพทอน ได้แก่ ค่าของข้อมูลหรือค่าคงตัว (literal) ตัวแปร หรือการรวมกลุ่มของสิ่งดังกล่าวกับตัวดำเนินการ (operation0 นิพจน์มีหลายประเภท เช่น นิพจน์ คณิตศาสตร์ นิพจน์เปรียบเทียบ และนิพจน์ตรรกะ
นิพจน์คณิตศาสตร์ (arithmetic operation)
เป็นนิพจน์ที่ใช้ตัวดำเนินการคณิตศาสตร์ ในการประมวลผล เพื่อให้ได้ผลลัพธ์เป็นจำนวน
ตัวดำเนินการ
( )
**
*
/
//
%
+
-
ความหมาย
จัดกลุ่ม (Group)
ยกกำลัง (Exponentiation)
คูณ(Multiplication)
หารจำนวนจริง(Division)
หารปัดเศษทิ้ง(Floor division)
หารเอาเศษ(Modulus)
บวก(Addition)
ลบ(Subtraction)
ตัวอย่างการใช้งาน
(2 + 9) * 5
5 ** 2
10 * 3
25 / 5
8 // 3
28 % 24
5 +7
10 - 2
ผลลัพธ์
55
25
30
5.0
2
4
12
8
ตัวดำเนินการคณิตศาสตร์มีลำดับความสำคัญที่ใช้ในการประมวลผล ถ้าหากในกรณีที่มีตัวดำเนินการหลายตัวอยู่ในนิพจน์เดียวกัน การตัดสินว่าตัวดำเนินการใดจะทำงานก่อนหรือหลังขึ้นอยู่กับลำดับความสำคัญ โดยตัวดำเนินการที่มีลำดับความสำคัญสูงจะทำงานก่อน ตัวดำเนินการแต่ละตัวมีลำดับความสำคัญแตกต่างกัน โดยเรียงจากลำดับความสำคัญสูงไปยังลำดับความสำคัญต่ำ ดังนี้
( ) จัดกลุ่ม มีความสำคัญสูงสุด
** ยกกำลัง มีความสำคัญรองลงมา
* / // % คูณ หาร หารปัดเศษทิ้ง และหารเอาเศษ มีความสำคัญเท่ากันโดยจะกระทำตามลำดับจากซ้ายไปขวาในนิพจน์
+ - บวกและลบ มีความสำคัญต่ำสุด โดยจะกระทำจากซ้ายไปขวา
เกร็ดน่ารู้ (ตัวดำเนินการ **)
ตัวดำเนินการ ** ยกกำลัง มีลำดับความสำคัญรองลงมาจากตัวดำเนินการ ( ) จัดกลุ่ม แต่ถ้ามีการใช้ตัวดำเนินการ ** ต่อกันจะมีการทำงานจากขวามาซ้าย เช่น 2 ** 2 ** 3 ลำดับการทำงานคือ 2 ** ( 2 ** 3) = 2 ** 8 = 256
นิพจน์เปรียบเทียบ (relational operation)
เป็นนิพจน์ที่ใช้ตัวดำเนินการเปรียบเทียบ ในการเปรียบเทียบค่าของนิพจน์คณิตศาสตร์สองนิพจน์ ซึ่งในภาษาไพทอนจะได้ผลลัพธ์เป็นคลาส bool ซึ่งมีค่าเป็น True หรือ False เท่านั้น
ตัวดำเนินการทางเปรียบเทียบที่ใช้ในภาษาไพทอน โดยกำหนด x = 5 และ y = 7
ตัวดำเนินการ
==
!=
>=
<=
>
<
ความหมาย
เท่ากัน
ไม่เท่ากัน
มากกว่าหรือเท่ากับ
น้อยกว่าหรือเท่ากับ
มากกว่า
น้อยกว่า
ตัวอย่างการใช้งาน
x == y
x != y
x >= y
x <= y
x > y
x < y
ผลลัพธ์
False
True
False
True
False
True
การใช้นิพจน์เปรียบเทียบ
# Example2201
>>> a = 20
>>> a < 50
True
>>> a > 25
False
>>> a == 20
True
>>> type (a != 20)
<class 'bool'>
ผลลัพธ์ที่ได้จะพบว่า เมื่อกำหนดค่าตัวแปร a ให้มีค่าเท่ากับ 20 และนำตัวแปร a ไปใช้ตัวดำเนินการเปรียบเทียบจะได้ผลลัพธ์เป็นค่า จริง (True) หรือเท็จ (False) เท่านั้น ซึ่งมีชนิดเป็น bool นั่นเอง
ทดลองเขียนโปรแกรมสักหน่อย
https://www.w3schools.com/python/default.asp
a = 20
print(a<50)
นิพจน์ตรรกะ (logical expression)
เป็นนิพจน์ที่ใช้ตัวดำเนินการตรรกะในการประมวลผลตัวถูกดำเนินที่อยู่ในคลาส bool โดยตัวดำเนินการตรรกะที่ใช้ในภาษาไพทอน มีดังนี้
ตัวดำเนินการ
not
and
or
ความหมาย
นิเสธ
และ
หรือ
ตัวอย่างการใช้งาน
not 5> 6
3 < 4 and 5 > 6
3 < 4 or 5 > 6
ผลลัพธ์
True
False
True
ตัวดำเนินการ and และ or ต้องการตัวถูกดำเนินการสองตัว แต่ตัวดำเนินการ not ตัองการตัวถูกดำเนินการเพียงตัวเดียว โดยตัวดำเนินการตรรกะมีลำดับความสำคัญเรียงจากลำดับความสำคัญสูงไปยังลำดับความสำคัญต่ำ คือ not and or
เกร็ดน่ารู้ (การประมวลผลนิพจน์ที่มีตัวดำเนินการเปรียบเทียบต่อเนื่องกัน)
เช่น 2 < x < 10
สามารถเขียนลำดับการดำเนินการได้ดังนี้ (2 < x) and (x < 10)
การใช้นิพจน์ตรรกะ
# Example2202
>>> a = 30
>>> a < = 25 and a >= 30
False
>>> a <= 25 or a >= 30
True
>>> not a != 30
True
คำถามท้าทาย
1. กำหนดให้ number1 = 50, number2 = 100 และ number3 = 100
นิพจน์ not(number1 > number2) and (number3 <= number1) เป็นจริงหรือเท็จ
2. จงหาค่าของนิพจน์ต่อไปนี้ ((50 // 11) ** 2 - 10 ) % 4 + (2 * 3)