นิพจน์ (Expression) คือ ข้อกำหนดที่ใช้ในการคำนวณหาค่าต่าง ๆ ยกตัวอย่างง่าย ๆ ที่เห็นได้ชัดก็อย่างเช่นสูตรคณิตศาสตร์ต่าง ๆ ซึ่งสูตรเหล่านั้นจะประกอบไปด้วยโอเปอร์แรนด์ (Operand) โอเปอร์แรนด์ คือ ตัวแปร หรือค่าคงที่ หรือฟังก์ชันต่าง ๆ มาคำนวณอาจจะมีตั้งแต่หนึ่งตัวหรือมากว่า โดยการใช้โอเปร์เรเตอร์ (Operator) ซึ่งเป็นสัญลักษณ์ที่ใช้ในการคำนวณหรือเปรียบเทียบทางคณิตศาสตร์มาเป็นตัวเชื่อมของโอเปอร์แรนด์ ตัวอย่างเช่น บวก (+) ลบ (-) คูณ (*) หาร (/) เป็นต้น เพื่อจะเป็นการเข้าใจนิพจน์ดียิ่งขึ้นให้พิจารณาจากสูตรการหาพื้นที่ของวงกลมต่อไปนี้คือ p * radius * radius
Expression คือ p * radius * radius
Operand มี 2 ตัว คือ
Variable (ตัวแปร) คือ radius
Constant (ค่าคงที่) คือ p
Operator คือ *
ตารางที่ 1.5 สัญลักษณ์ทางคณิตศาสตร์ที่ใช้ในการคำนวณในภาษาไพธอน
จากตารางที่ 1.5 จะเห็นได้ว่าสัญลักษณ์ที่ใช้คำนวณในภาษาไพธอนจะมีอยู่ 6 ตัวด้วยกันคือ บวก ลบ คูณ หาร หารเอาเศษยกกำลังและหารไม่ปัดเศษ ซึ่งการคำนวณจะขึ้นอยู่กับชนิดของตัวแปรว่าเป็นชนิดข้อมูลแบบใดที่มากระทำต่อกัน ซึ่งผลที่ได้เมื่อคำนวณเสร็จแล้วอาจจะเป็นชนิดข้อมูลแบบเดิมหรืออาจจะกลายเป็นชนิดข้อมูลตัวใหม่ก็ได้ ซึ่งการคำนวณแต่ละตัวจะมีวิธีการคำนวณดังตัวอย่างต่อไปนี้
integer + integer = integer เช่น 5 + 2 = 7
float + integer = float เช่น 5.5 + 2 = 7.5
integer + float = float เช่น 2 + 5.5 = 7.5
float + float = float เช่น 2.5 + 4.2 = 6.7
การลบ (Subtraction)
integer - integer = integer เช่น 6 - 1 = 5
float - integer = float เช่น 3.3 - 3 = 0.3
integer - float = float เช่น 3 - 3.3 = -0.3
float - float = float เช่น 1.5 - 2.7 = -1.2
การคูณ (Multiplication)
integer * integer = integer เช่น 4 * 3 = 12
float * integer = float เช่น 2.7 * 1 = 2.7
integer * float = float เช่น 1 * 2.7 = 2.7
float * float = float เช่น 3.2 * 2.4 = 7.68
การหาร (Division)
integer / integer = integer เช่น 5 / 2 = 2
float / integer = float เช่น 3.2 / 2 = 1.6
integer / float = float เช่น 2 / 3.2 = 0.625
float / float = float เช่น 2.5 / 1.5 = 1.67
การหารเอาเศษ (Remainder)
integer % integer = integer เช่น 5 % 2 = 1
หมายเหตุ การหารเอาเศษไม่ใช่เอาเศษหลังจุดทศนิยมแต่จะเอาเศษที่เหลือจากการหารไม่ลงตัวมาเป็นผลลัพธ์
นิพจน์ทางตรรกศาสตร์ (Boolean Logical Expression) เป็นนิพจน์ที่แสดงความสัมพันธ์ของการเปรียบเทียบ โดยการใช้ตัวเชื่อมด้วยโอเปอร์เรเตอร์ในการเปรียบเทียบเช่น มากกว่า น้อยกว่า เท่ากับ ไม่เท่ากับ เป็นต้น และยังมีสัญลักษณ์ทางตรรกศาสตร์ซึ่งได้แก่ and or not ที่ใช้เปรียบเทียบเงื่อนไขที่มีมากกว่าหนึ่งเงื่อนไข
ตารางที่ 1.6 สัญลักษณ์เปรียบเทียบทางคณิตศาสตร์
เครื่องหมาย
|
ความหมาย
|
==
>
<
<=
>=
<>, !=
|
เท่ากับ
น้อยกว่า
มากกว่า
น้อยกว่าหรือเท่ากับ
มากกว่าหรือเท่ากับ
ไม่เท่ากับ
|
ตารางที่ 1.7 เปรียบเทียบตรรกะทางคณิตศาสตร์
ตัวอย่างที่ 1. กำหนดให้ A = 1, B = 2, C = 3
ถ้า (A != B) and ((A > C) or (C > B)) จะมีผลลัพธ์เป็นจริงหรือเท็จ
ผลลัพธ์ คือ จริง
ลำดับการกระทำของเครื่องหมาย
นิพจน์ที่ใช้ในการคำนวณอาจมีเครื่องหมายการคำนวณ เช่น + - * / หรือการเปรียบเทียบเงื่อนไขต่าง ๆ จะต้องมีเครื่องหมายที่ใช้ในการเปรียบเทียบ ให้ถูกต้องตรงกับหมายของการทำงาน และผู้เขียนคำสั่งโปรแกรมต้องทราบลำดับการทำงานของเครื่องหมายในแต่ละเครื่องหมาย ว่าเครื่องหมายใดจะประมวลผลก่อนหรือหลัง
ตารางที่ 1.8 ลำดับการคำนวณของเครื่องหมายในภาษาไพธอน
ลำดับ
|
เครื่องหมาย
|
ความหมาย
|
1
|
**
|
ยกกำลัง
|
2
|
*, /, %
|
คูณ หาร หารเอาเศษ
|
3
|
+, -
|
บวก ลบ
|
4
|
<, <=, >, >=, <>, !=, ==
|
น้อยกว่า น้อยกว่าหรือเท่ากับ มากกว่า
มากกว่าหรือเท่ากับ ไม่เท่ากับ ไม่เท่ากับ เท่ากับ
|
5
|
not
|
บูลีนไม่
|
6
|
and
|
บูลีนและ
|
7
|
or
|
บูลีนหรือ
|
ที่มา : http://python.nattapon.com/lesson2-python-fundamental/2-2-expression/
โดยทั่วไปแล้วในการคำนวณนิพจน์หรือการเปรียบเทียบเงื่อนไขที่กระทำโดยคน จะคำนวณจากซ้ายมือไปขวามือตามลำดับ แต่การประมวลผลด้วยเครื่องคอมพิวเตอร์นั้นจะใช้หลักการให้ความสำคัญกับเครื่องหมายที่ใช้กับนิพจน์นั้น ๆ โดยเครื่องหมายที่มีลำดับความสำคัญมากกว่าจะได้สิทธิ์ประมวลผลก่อน แม้ว่าเครื่องหมายนั้นจะอยู่ด้านขวามือก็ตาม แต่ถ้าเครื่องหมายใด ๆ มีลำดับความสำคัญเท่ากันโปรแกรมคอมพิวเตอร์จะประมวลผลจากซ้ายมือไปขวามือตามปกติเช่นเดียวกับการคำนวณด้วยคน
ตัวอย่างที่ 2 จากการคำนวณต่อไปนี้ price จะได้คำตอบเท่ากับเท่าไร
price = cost + packing * 2 – discount;
กำหนดให้
cost = 100, packing = 10 และ discount = 5
1. เริ่มต้นจากตัวแปร packing คูณด้วย 2 ก่อน เนื่องจากเครื่องหมาย * ต้องทำก่อนเครื่องหมาย + หรือ - ค่าที่ได้เท่ากับ 10 * 2 เท่ากับ 20
2. จากนั้นจะคำนวณจากซ้ายมือไปขวามือ เนื่องจากเครื่องหมาย + และ - มีลำดับความสำคัญเท่ากัน ดังนั้นจะนำเอา cost + ผลลัพธ์ที่ได้จากข้อ 1 จึงได้ผลลัพธ์เท่ากับ 120
3. สุดท้าย นำเอาผลลัพธ์จากขั้นที่ 2 ลบด้วย discount หรือ 120 – 5 เพราะฉะนั้นคำตอบที่ได้ price = 115
การเปลี่ยนลำดับการคำนวณนิพจน์ในภาษาไพธอน สามารถทำได้โดยการใส่เครื่องหมายวงเล็บ คร่อมส่วนของนิพจน์ที่ต้องการให้ทำการคำนวณก่อน ซึ่งเป็นวิธีการคำนวณเช่นเดียวกับคน เช่น
price = ((cost + packing) * 2) – discount;
การแปลงนิพจน์ทั่วไปให้เป็นนิพจน์ในภาษาไพธอน
โดยทั่วไปแล้วเราไม่สามารถที่จะนำนิพจน์คณิตศาสตร์ทั่ว ๆ ไปนำมาใช้ในภาษาไพธอนได้เลยอย่างเช่นนิพจน์คณิตศาสตร์ต่อไปนี้คือ ax2+bx+c จะนำไปใช้เขียนโปรแกรมเลยไม่ได้ผู้เขียนโปรแกรมจะต้องแปลงให้เป็นนิพจน์ที่โปรแกรมภาษาคอมพิวเตอร์สามารถนำไปใช้ได้ ถ้าสังเกตให้ดีจะเห็นว่า ax2 จริง ๆ แล้วจัดเป็นหนึ่งนิพจน์ ถ้าแปลงให้เป็นนิพจน์ของภาษาไพธอนจะได้ a*x*x แล้ว bx เป็นอีกนิพจน์หนึ่งถ้าแปลงเป็นนิพจน์ของภาษาไพธอนคือ b*x โดยนิพจน์สองตัวนี้ถูกเชื่อมด้วยโอเปอร์เรเตอร์ + ก่อนที่จะนำนิพจน์สองตัวนี้มาเชื่อมด้วยเครื่องหมาย + ให้ใส่วงเล็บเปิดปิดคร่อมนิพจน์แต่ละตัวก่อนถึงจะนำมาบวกกันได้ เพราะฉะนั้นถ้าเขียนเป็นนิพจน์ในภาษาไพธอนจะได้ดังนี้คือ (a*x*x)+(b*x)+c เป็นต้น
ตัวอย่าง จากนิพจน์คณิตศาสตร์ คือ
ถ้าแปลงเป็นนิพจน์ในภาษาไพธอนจะได้ (Y * Y) / (X * X)
ขอบคุณที่มา: https://sites.google.com/site/dotpython/installation/operator
ขอบคุณที่มา: https://sites.google.com/site/dotpython/installation/operator
ไม่มีความคิดเห็น:
แสดงความคิดเห็น