Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

함수로서의 Python 표준 연산자


프로그래밍에서 연산자는 일반적으로 더하기, 빼기, 비교 등과 같은 특정 연산을 수행하도록 미리 정의된 기호(키)입니다. 산술, 비교, 비트 단위, 멤버십 등과 같은 범주.

파이썬 라이브러리의 연산자 모듈은 내장 연산자에 해당하는 함수로 구성되어 있습니다. 함수의 이름은 해당 연산자의 유형과 유사합니다. 예를 들어 연산자 모듈의 add() 함수는 + 연산자에 해당합니다.

Python의 Object 클래스에는 연산자 기호에 해당하는 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

시퀀스 작업 기능

파이썬의 내장 연산자 in, +(연결) 및 del은 각각 contains(), concat(), delitem() 함수로 구현됩니다. 인덱싱된 할당 연산자 seq[x] =y의 경우 setitem() 함수가 사용됩니다. seq[x]의 값을 얻기 위해 getitem() 함수를 사용합니다.

>>> a =[1,2,3]>>> b =['a','b','c']>>> a + b #시퀀스 연결[1, 2, 3, ' a', 'b', 'c']>>> concat(a,b)[1, 2, 3, 'a', 'b', 'c']>>> contains(a,'2') #implements in operatorFalse>>> contains(a,2)True>>> 2 in aTrue>>> b[1] ='x' # setitem()>>> b['a', 'x에 의해 구현된 인덱스 할당 ', 'c']>>> setitem(b,1,'b')>>> b['a', 'b', 'c']>>> a[1] #인덱스에서 값 가져오기 – 구현됨 by getitem()2>>> getitem(a,1)2>>> del b[2] #인덱스에서 요소 삭제. 해당 함수는 delitem()>>> b['a', 'b']>>> delitem(a,2)>>> a[1, 2]
입니다.

단일 단계에서 할당 및 계산을 수행하는 연산자를 제자리 연산자라고 합니다. Python의 제자리 연산자는 연산자 모듈의 해당 함수에 의해 구현됩니다. 추가 및 할당 작업을 수행하는 +=연산자에는 해당 iadd() 함수가 있습니다. 마찬가지로 'i' 접두사가 붙은 각 연산자 함수는 제자리에서 등가물을 형성합니다.

내부 추가

>>> a =10>>> b =20>>> a =iadd(a,b) #a +=b>>> a30과 동일

내장 빼기

>>> a =10>>> b =20>>> a =isub(a,b) #a -=b>>> a-10과 동일

내부 곱셈

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

현재 분할

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

연산자 모듈은 또한 표준 비트 단위 연산자를 구현하는 함수로 구성됩니다.

>>> and_(10,2) #10 &22에 해당>>> or_(10,2) #10에 해당 | 210>>> xor(10,2) #10과 동일 ^ 28>>> lshift(10,2) #10과 동일 <<240>>> rshift(10,2) #10과 동일>> 22