Python Operators - Silpakorn...

Post on 14-Mar-2020

9 views 0 download

Transcript of Python Operators - Silpakorn...

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