Python의 Inplace 연산자
Inplace 연산은 복사본을 만들지 않고 주어진 선형 대수, 벡터 또는 메트릭의 내용을 직접 변경하는 연산입니다. 이제 이러한 종류의 작업을 수행하는 데 도움이 되는 연산자를 제자리 연산자라고 합니다.
간단한 예를 들어 이해합시다 -
a=9 a += 2 print(a)
출력
11
+=타이 입력 연산자 위. 여기서 먼저 값이 이전 값으로 업데이트되는 2를 더합니다.
위의 원칙은 다른 연산자에도 적용됩니다. 일반적인 제자리 연산자는 -
- +=
- -=
- *=
- /=
- %=
위의 원칙은 숫자 이외의 다른 유형에도 적용됩니다. 예:-
language = "Python" language +="3" print(language)
출력
Python3
위의 x+=y 예는 x =operator.iadd(x,y)
와 동일합니다.내부 작업에 사용되는 여러 연산자가 있습니다.
iadd()
이 기능은 현재 값을 할당하고 추가하는 데 사용됩니다. 이 연산자는 x+=y 연산을 수행합니다.
x =operator.iadd(9,18) print("Result after adding: ", end="") print(x)
결과
Result after adding: 27
isub()
이 기능은 현재 값을 할당하고 빼는 데 사용됩니다. Isub() 함수는 x-=y 연산을 수행합니다.
x =operator.isub(9,18) print("Result after subtraction: ", end="") print(x)
결과
Result after subtraction: -9
imul()
이 함수는 현재 값을 할당하고 곱하는 데 사용됩니다. 이 연산자는 x*=y 연산을 수행합니다.
x =operator.imul(9,18) print("Result after multiplying: ", end="") print(x)
결과
Result after multiplying: 162
itruediv()
현재 값을 할당하고 나누는 기능입니다. 이 연산자는 x/=y 연산을 수행합니다.
x =operator.itruediv(9,18) print("Result after dividing: ", end="") print(x)
결과
Result after dividing: 0.5
imod()
이 기능은 현재 값을 할당하고 나누는 데 사용됩니다. 이 연산자는 x %=y 연산을 수행합니다.
x =operator.imod(9,18) print("Result after moduls: ", end="") print(x)
결과
Result after moduls: 9
아이콘캣()
이 함수는 두 개의 문자열을 연결하는 데 사용됩니다.
x = "Tutorials" y = "Point" str1 = operator.iconcat(x,y) print(" After concatenation : ", end="") print(str1)
결과
After concatenation : TutorialsPoint
아이포()
이 함수는 x **=y와 동일합니다.
x =operator.ipow(2,6) print("Result after exponent: ", end="") print(x)
결과
Result after exponent: 64
표준 연산자
연산자는 피연산자의 값을 조작할 수 있는 구조입니다.
예를 들어 - 9+18 =27 표현식에서 9와 18은 피연산자이고 +는 연산자라고 합니다.
연산자 유형
Python 언어는 다음 유형의 연산자를 지원합니다. -
-
산술 연산자 :(예:+, -, *, /, %, **, //)
-
비교 연산자 :(예:"==", "!=", "<>", ">", "<", ">=", "<=")
-
할당 연산자 :(예:"=", "+=", "-=", "*=", "/=", "%=", "**=", "//=")
-
논리 연산자 :(예:"논리적 AND", "논리적 OR", "논리적 NOT")
- 비트 연산자: (예:"|", "&", "^", "~", "<<", ">>")
-
멤버십 운영자 :(예:인, 인 아님)
-
ID 연산자 :(예:is, is not)
연산자를 함수에 매핑
아래는 추상 연산이 파이썬 구문의 연산자 기호와 연산자 모듈의 함수에 어떻게 대응하는지 보여주는 표입니다.
작업 | 구문 | 함수 |
---|---|---|
추가 | x + y | 추가(x, y) |
연결 | 시퀀스1 + 시퀀스2 | 연결(seq1, seq2) |
격리 테스트 | 시퀀스의 Obj | 포함(seq, obj) |
사업부 | x / y | 트루디브(x, y) |
사업부 | x // y | Floordiv(x, y) |
비트 단위 및 | x &y | 그리고_(x, y) |
비트별 배타적 OR | x ^ y | Xor(x, y) |
비트 단위 반전 | ~x | 반전(x) |
비트 단위 또는 | x|y | 또는_(x,y) |
지수 | x ** y | pow(x, y) |
아이덴티티 | x는 y | is_(x, y) |
아이덴티티 | x는 y가 아닙니다. | is_not(x, y) |
인덱싱된 할당 | obj[k] =v | setitem(obj, k, v) |
색인 삭제 | 델 오브제[k] | 항목(obj, k) |
인덱싱 | 오브제[k] | Getitem(obj,k) |
왼쪽 시프트 | a < | Lshift(a,b) |
모듈로 | a % b | 모드(a,b) |
곱하기 | x*y | 멀(x*y) |
행렬 곱 | x@b | 마트물(x,y) |
부정(산술) | -a | 음수(a) |
부정(논리) | 아님 | 아님_(a) |
긍정 | +a | pos(a) |
오른쪽 시프트 | a>>b | Rshift(a,b) |
슬라이스 할당 | 시퀀스[i:j] =값 | Setitem(seq, slice(i,j), values) |
슬라이스 삭제 | 델 시퀀스[i:j] | Delitem(seq, slice(i,j)) |
슬라이싱 | 순서[i:j] | Getitem(seq, slice(I, j)) |
문자열 형식화 | S % 개체 | Mod(s, obj) |
빼기 | a-b | 하위(a,b) |
진실 테스트 | 오브제이 | 진실(obj) |
주문 | 아 | lt(a,b) |
주문 | a<=b | le(a,b) |
평등 | a ==b | 식(a,b) |
차이 | a !=b | 네(a,b) |
주문 | a>=b | ge(a, b) |
주문 | a> b | gt(a,b) |