Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตัวดำเนินการมาตรฐานของ Python เป็นฟังก์ชัน


ในการเขียนโปรแกรม โดยทั่วไปโอเปอเรเตอร์จะเป็นสัญลักษณ์ (คีย์) ที่กำหนดไว้ล่วงหน้าเพื่อดำเนินการบางอย่าง เช่น การบวก การลบ การเปรียบเทียบ เป็นต้น Python มีชุดการดำเนินการในตัวจำนวนมากซึ่งแบ่งออกเป็นส่วนต่างๆ หมวดหมู่ต่างๆ เช่น เลขคณิต การเปรียบเทียบ ระดับบิต การเป็นสมาชิก เป็นต้น

โมดูลตัวดำเนินการในไลบรารี python ประกอบด้วยฟังก์ชันที่สอดคล้องกับตัวดำเนินการในตัว ชื่อของฟังก์ชันจะคล้ายกับประเภทของตัวดำเนินการที่เกี่ยวข้อง ตัวอย่างเช่น ฟังก์ชัน add() ในโมดูลตัวดำเนินการสอดคล้องกับตัวดำเนินการ +

คลาส Object ของ Python มีเมธอด dunder (เครื่องหมายขีดล่างคู่ก่อนและหลังชื่อ) ที่สอดคล้องกับสัญลักษณ์ตัวดำเนินการ เมธอด dunder เหล่านี้สามารถโอเวอร์โหลดได้อย่างเหมาะสมในคลาสที่กำหนดโดยผู้ใช้เพื่อใช้โอเปอเรเตอร์โอเวอร์โหลด โมดูลตัวดำเนินการยังประกอบด้วยฟังก์ชัน dunder ที่สอดคล้องกัน ตัวอย่างเช่น add() และ __add__() ใช้การดำเนินการของสัญลักษณ์ +

เริ่มต้นด้วยให้เรานำเข้าฟังก์ชันจากโมดูลตัวดำเนินการ

>>>> จากการนำเข้าโอเปอเรเตอร์ *

หากต้องการเรียนรู้เกี่ยวกับฟังก์ชันที่สอดคล้องกับตัวดำเนินการเลขคณิต ตัวแปรสองตัวจะถูกเริ่มต้นเป็น

>>> a =10>>> b =20

add(), sub() และ mul() สอดคล้องกับตัวดำเนินการ +, - และ * สัญลักษณ์ / ของการหารถูกใช้งานโดยฟังก์ชัน truediv()

>>> add(a,b)30>>> a + b30>>> sub(a,b)-10>>> a - b-10>>> mul(a,b)200>>> a * b200>>> truediv(a,b)0.5>>> a / b0.5

ตัวดำเนินการเลขคณิตอื่นๆ %, ** และ // ถูกใช้งานโดยฟังก์ชัน mod(), pow() และ floordiv() จากโมดูลตัวดำเนินการ

>>> a =5>>> b =3>>> a % b2>>> mod(a,b)2>>> a ** b125>>> pow(a,b)125>>> a // 22>>> floordiv(a,b)

ตัวดำเนินการตรรกะ <, <=,>,>=, ==และ !=ถูกใช้งานโดย lt(), le(), gt(), ge(), eq() และ ne() ตามลำดับ

>>> a =5>>> b =7>>> a >> lt(a,b)True>>> a <=bTrue>>> le(a,b)True>>> a> bFalse>>> gt(a,b)False>>> a>=bFalse>>> ge(a,b)False>>> a ==bFalse>>> eq(a,b)False>>> a !=bTrue>>> ne(a,b)True

ฟังก์ชันการทำงานตามลำดับ

ตัวดำเนินการในตัวของ Python ใน + (การต่อกัน) และ del ถูกใช้งานตามลำดับโดยประกอบด้วย (), concat(), delitem() ฟังก์ชัน สำหรับตัวดำเนินการกำหนดดัชนี seq[x] =y จะใช้ฟังก์ชัน setitem() เพื่อให้ได้ค่าของ seq[x] ฟังก์ชัน getitem() จะถูกใช้

>>> a =[1,2,3]>>> b =['a','b','c']>>> a + b #sequence concatenation[1, 2, 3, ' a', 'b', 'c']>>> concat(a,b)[1, 2, 3, 'a', 'b', 'c']>>>> ประกอบด้วย (a,'2') #implements ในโอเปอเรเตอร์False>>> มี (a,2)True>>> 2 ใน aTrue>>> b[1] ='x' #index การกำหนดดำเนินการโดย setitem()>>> b['a', 'x ', 'c']>>> setitem(b,1,'b')>>> b['a', 'b', 'c']>>> a[1] #fetching ค่าที่ดัชนี – นำไปใช้ โดย getitem()2>>> getitem(a,1)2>>> del b[2] #deleting องค์ประกอบที่ดัชนี ฟังก์ชั่นที่สอดคล้องกันคือ delitem()>>> b['a', 'b']>>> delitem(a,2)>>> a[1, 2]

ตัวดำเนินการที่ดำเนินการกำหนดและคำนวณในขั้นตอนเดียวเรียกว่าตัวดำเนินการในสถานที่ ตัวดำเนินการแทนที่ของ Python ถูกใช้งานโดยฟังก์ชันที่เกี่ยวข้องในโมดูลตัวดำเนินการ ตัวดำเนินการ +=ซึ่งดำเนินการเพิ่มและกำหนดมีฟังก์ชัน iadd() ที่สอดคล้องกัน ในทำนองเดียวกัน ฟังก์ชันโอเปอเรเตอร์แต่ละตัวที่นำหน้าด้วยรูปแบบ "i" ในตำแหน่งที่เทียบเท่า

การเพิ่มในตำแหน่ง

>>> a =10>>> b =20>>> a =iadd(a,b) #equivalent to a +=b>>> a30

การลบแบบแทนที่

>>> a =10>>> b =20>>> a =isub(a,b) #equivalent to a -=b>>> a-10

การคูณแบบแทนที่

>>> a=10>>> b =20>>> a =imul(a,b) #equivalent to a *=b>>> a200

ส่วนแทนที่

>>> a =10>>> b =4>>> a =itruediv(a,b)>>> a2.5

โมดูลตัวดำเนินการยังประกอบด้วยฟังก์ชันที่ใช้ตัวดำเนินการระดับบิตมาตรฐาน

>>> and_(10,2) #equivalent to 10 &22>>> or_(10,2) #equivalent to 10 | 210>>> xor(10,2) #เทียบเท่า 10 ^ 28>>> lshift(10,2) #เทียบเท่า 10 <<240>>> rshift(10,2) #เทียบเท่า 10>> 22