python operators - silpakorn...
TRANSCRIPT
Python Operators
Operator มอะไรบาง ?
• Arithmetic Operators
• Comparison (i.e., Relational) Operators
• Assignment Operators
• Logical Operators
• Bitwise Operators
• Membership Operators
• Identity Operators
Python Arithmetic Operators
Operator Description Example
+ Addition – เปนการบวกคา 2 คาเขารวมกน a + b
10 + 20 = 30
- Subtraction - นาคาทางดานซายลบกบคาทางดานขวา a - b
10 – 20 = -10
* Multiplication - เปนการคณคา 2 คา a * b
10 * 20 = 200
/ Division - นาคาทางดานซายหารดวยคาทางดานขวา b / a
20/10 = 2.0
% Modulus – นาคาทางดานซายหารทางดานขวา
แลวตอบผลลพธเปนคาเศษ
b % a
20 % 10 = 0
** Exponent – เปนการยกกาลง คาทางซายเปนฐาน และ
คาทางขวาเปนเลขยกกาลง
a**b
10 ยกกาลง 20 = 1020
// Floor Division - เปนการหารแลวนาคาทศนยมออก 20//3 = 6 ( 6.67 )
34.5//1.7 = 20 ( 20.29 )
ให a = 10 และ b =20 จะได
Exกาหนดให x = 21.0, y = 5.0 และ a = 21, b = 5 ใหตรวจสอบคาระวาง x//y และ a/b วามคา
เทากนหรอไม
Python Comparison Operators
Operator Description Example
== ตรวจสอบวาทงสองคาเทากนหรอไม ถาคาเทากน เงอนไขจะเปนจรง (a == b) ไมเปนจรง
!= ตรวจสอบวาทงสองคาไมเทากนหรอไม ถาคาไมเทากน
เงอนไขจะเปนจรง
(a != b) เปนจรง
<> ตรวจสอบวาทงสองคาไมเทากนหรอไม ถาคาไมเทากน
เงอนไขจะเปนจรง
(a <> b) เปนจรง เครองหมาย <> ม
ความหมายเดยวกบ เครองหมาย !=
> ตรวจสอบวาคาทางซายมากกวาคาทางขวาหรอไม ถาใช
เงอนไขจะเปนจรง
(a > b) ไมเปนจรง
< ตรวจสอบวาคาทางซายนอยกวาคาทางขวาหรอไม ถาใช
เงอนไขจะเปนจรง
(a < b ) เปนจรง
>= ตรวจสอบวาคาทางซายมากกวาหรอเทากบคาทางขวาหรอไม ถาใช
เงอนไขจะเปนจรง
(a >= b) ไมเปนจรง
<= ตรวจสอบวาคาทางซายนอยกวาหรอเทากบคาทางขวาหรอไม ถาใช
เงอนไขจะเปนจรง
(a <= b) เปนจรง
ให a = 10 และ b =20 จะได
Python Assignment Operators
Operator Description Example
= เปนการนาคาตวแปรฝงขวาไปเกบไวทตวแปรฝงซาย c = a + b เปนการ
เกบคา a+b ไวท c
+= เปนการบวกคาตวแปรสองคาจากฝงขวาไปเกบไวทตวแปรฝงซาย c += a จะเทากบ
c = c + a
-= เปนการลบคาตวแปรสองคาจากฝงขวาไปเกบไวทตวแปรฝงซาย c -= a จะเทากบ
c = c - a
*= เปนการคณคาตวแปรสองคาจากฝงขวาไปเกบไวทตวแปรฝงซาย c *= a จะเทากบ
c = c * a
/= เปนการหารคาตวแปรสองคาจากฝงขวาไปเกบไวทตวแปรฝงซาย c /= a จะเทากบ
c = c / a
%= เปนการหารตวแปรสองคาแลวเอาเศษจากฝงขวาไปเกบไวทตวแปรฝง
ซาย
c %= a จะเทากบ
c = c % a
**= เปนการยกกาลงตวแปรจากฝงขวาแลวนาคาไปเกบไวทตวแปรฝงซาย c **= a จะเทากบ
c = c ** a
//= เปนการหารไมเอาคาทศนยมของตวแปรสองคาจากฝงขวาไปเกบไวทตว
แปรฝงซาย
c //= a จะเทากบ
c = c // a
Python Bitwise Operators
Operator Description
& เปนการทาการANDระหวางบตของสองตวแปรในรปแบบเลขฐานสอง
| เปนการทาการORระหวางบตของสองตวแปรในรปแบบเลขฐานสอง
^ เปนการทาการXORระหวางบตของสองตวแปรในรปแบบเลขฐานสอง
~ เปนการทาการกลบบตระหวางสองตวแปรจาก 1’s complement เปน 2’s
complement ในรปแบบเลขฐานสอง
<< เปนการเลอนบตไปทางซายตามจานวนคาทกาหนดไว
>> เปนการเลอนบตไปทางขวาตามจานวนคาทกาหนดไว
a = 78 0 1 0 0 1 1 1 0
b = 45 0 0 1 0 1 1 0 1
c = 12 0 0 0 0 1 1 0 0
a = 78 0 1 0 0 1 1 1 0
b = 45 0 0 1 0 1 1 0 1
c = 111 0 1 1 0 1 1 1 1
a = 78 0 1 0 0 1 1 1 0
b = 45 0 0 1 0 1 1 0 1
c = 99 0 1 1 0 0 0 1 1
-79 0 1 0 0 1 1 1 1
a = 78 0 1 0 0 1 1 1 0
~a 1 0 1 1 0 0 0 1
312 0 0 0 1 0 0 1 1 1 0 0 0
a<<2 0 1 0 0 1 1 1 0
0 0 0 256 0 0 32 16 8 0 0 0
กาหนดให a = 78
29 28 27 26 25 24 23 22 21 20
19 0 0 0 1 0 0 1 1 1 0
a 0 1 0 0 1 1 1 0
27 26 25 24 23 22 21 20
0 0 0 16 0 0 2 1 0 0
กาหนดให a = 78
Python Logical Operators
Operator Description
and เปนการทาการ AND กนระหวางสองตวแปร ถาเปนจรงเงอนไขกจะเปนจรง
or เปนการทาการ OR กนระหวางสองตวแปร ถาสองตวแปรไมเปนศนยเงอนไข
จะเปนจรง
not เปนการกระทาการ NOT กบเงอนไขนนๆ จะทาใหเงอนไขนนเปนตรงกน
ขาม
Python Membership Operators
Operator Description
in จะเปนจรงถามการหาตวแปรa เจอในลาดบขางตน
not in จะเปนจรงถาไมมการหาตวแปรa เจอในลาดบขางตน
Membership operators เปนการทดสอบวาขอมลทรบเขามานน
เปนสมาชกของ list, string หรอ tuple หรอไม
Python Identity Operators
Operator Description
is จะเปนจรง – กตอเมอเปรยบเทยบคาทเกบในหนวยความจามคา
เทากน
is not จะเปนจรง - กตอเมอเปรยบเทยบคาทเกบในหนวยความจามคาไม
เทากน
Identity operators เปนการเปรยบเทยบคาทเกบในหนวยความจาวามคาเทากนหรอไม
Precedence Rule
Precedence rule เปนลาดบความสาคญของการใชงานแตละ operator โดยลาดบความสาคญของ
operator มดงน
Precedence Operator
1 **
2 ~ + - (ในกรณน + - จะหมายถง คาของตวเลข)
3 * / % //
4 + -
5 >> <<
6 &
7 ^ |
8 <= < > >=
9 <> == !=
10 = %= /= //= -= += *= **=
11 is is not
12 in not in
13 not or and
Associativity Rule
จากตาราง Precedence จะเหนวา ม operator บางตวทมความสาคญเทากน ซง
Associativity เปนการจดลาดบการทางานของ operator ทมลาดบความสาคญ
เทากน โดยสวนใหญแลวจะมลาดบการทางานแบบ left-to-right เชน
แตวาม operator บางตวทไมไดมลาดบการทางานแบบ left-to-right
แตจะมการทางานแบบ right-to-left นนคอ exponent(**)
โจทย
1. จงหาคา bmi ของตนเอง แลวแสดงคาออกมาทางหนาจอ จากนนนาคาทไดมา
เปรยบเทยบกบตารางแลวแสดงวา bmi ทไดอยในเกณฑไหน
โดย bmi = นาหนก(kg) / สวนสง(m) ยกกาลงสอง
bmi description
นอยกวา 18.5 Under weight
18.5 – 23.4 Normal weight
23.5 – 28.4 Over weight
28.5 – 33.4 Obesity lv 1
33.5 – 39.9 Obesity lv 2
มากกวา 40 Obesity lv 3
สมาชกผจดทา
1. นาย ธนบด บณยณตย 07550438
- รบผดชอบเรอง Assignment, Logical, Bitwise
2. นางสาว ธญญลกษณ โพธทอง 07550443
- รบผดชอบเรอง Arithmetic, Comparison
3. นาย รชชานนท พลอยนาผล 07550461
- รบผดชอบเรอง Membership, Identity, Precedence, Associativity