본문 바로가기
## 오래된 게시글 (미관리) ##/Python (Linux)

4. Python - 산술연산, 비교연산, 비트연산 등

by #Glacier 2018. 11. 23.
반응형

바로 시작해볼까욤..


1. 산술 연산

: 산술 연산자는 숫자 자료형에서 

  덧셈(+), 뺄셈(-), 곱셈(*), 실수 나눗셈(/), 정수 나눗셈(//), 나머지(%), 거듭제곱(**) 등이 있습니다.

 산술 연산자의 우선순위(priority)는 단항 연산자(부호 기호 +,-) , 거듭제곱, 곱셈과 나눗셈, 덧셈과 뺄셈 순서 입니다.

 거듭제곱의 결합규칙은 오른쪽에서 왼쪽으로 적용하고, 나머지 연산자의 결합규칙은 왼쪽에서 오른쪽 순서로 계산합니다.

 우선순위를 변경할 때는 괄호()를 사용합니다.


## 예제 1


>>> a=1+2
>>> b=1-2
>>> c=1*2
>>> d=1/2
>>> e=1//2
>>> f=1%2
>>> print('a:{0}, b:{1}, c:{2}, d:{3}, e:{4}. f:{5}'.format(a,b,c,d,e,f))
a:3, b:-1, c:2, d:0.5, e:0. f:1
>>> print=2**3
>>> print
8

>>> (1+2j) + (1+3j)
(2+5j)
>>> (1+2j)*(1+5j)
(-9+7j)
>>> (1+3j)/2
(0.5+1.5j)
>>> (1+3j)**2
(-8+6j)


2. 비교 연산


 연산자

 의미

 <

작다 

 <=

 작거나 같다

 >

 크다

 >=

 크거나 같다

 ==

 같다

 !=

 같지 않다

 is

 객체가 같다

 is not

 객체가 같지 않다


## 예제 2


>>> 1<2
True
>>> 2<=2
True
>>> 1>2
False
>>> 2>=2
True
>>> 1==2
False
>>> 1<2 or 2>3
True
>>> 1<2 and 2<3
True
>>> 1<2 and 2>3
False
>>> 1<2<3
True
>>> not 1 < 2
False
>>> (1+2j) == (1+3j)
False
>>> (1+2j) != (1+3j)
True

>>> a=1

>>> b=1

>>> a == b

True

>>> a is b  # id(a)==id(b)

True


3. 비트 연산

: 비트 연산자는 정수형(int)에서만 적용되며, 

  부정(~), 왼쪽 시프트(<<) 오른쪽 시프트(>>), 비트 논리곱(&), 비트 논리합( | ), 비트 배타적논리합(^)등이 있다.


x

y

~x

x&y

x|y

x^y

 0

 0 

1

0

0

0

 0

1

1

0

1

1

 1

 0

0

0

1

1

 1

 1

0

1

1

0


## 예제 3


>>> ~2
-3
>>> bin(~2)
'-0b11'

>>> int(bin(~2),2)
-3
>>> bin(0b1011 & 0b1001)
'0b1001'

>>> int(bin(0b1011 & 0b1001), 2)
9
>>> bin(0b1011<<1)
'0b10110'
>>> bin(0b1011>>1)
'0b101'


4. 확장 지정문

: 확장 지정문은 +=, -=, *=, /=, //=, %=, **=, >>=, <<=, &=, %=, |=등의 연산자를 사용합니다. 

 예를 들어 x+=1은 x=x+1과 유사하게 동작합니다.

 확장 지정문은 왼쪽의 변수 객체 값을 먼저 읽고, 

 오른쪽의 수식을 계산하여 확장 연산을수행한 다음에 왼쪽 변수 객체의 값을 변경합니다.


## 예제 4

>>>x=1

>>>x+=10

>>>x

11

>>>x-=10

>>>x

1

>>>x *=10

>>>x

10

>>>x %= 2

>>>x

0


5. 숫자 관련 내장함수

함수 

설명 

abs(x) 

숫자 x의 절대값을 반환한다. 

bin(x)

 정수 x를 2진 byte문자열로 변환한다.

hex(x) 

정수 x를 16진수 문자열로 변경하여 반환한다. 

oct(x)

 정수 x를 8진수로 문자열로 변경하여 반환한다.

 divmod(a,b)

 a를 b로 나눈 몫과 나머지를 tuple로 반환한다.

a=q*b+a%b

정수 : (a//b, a%b)

실수 : (q, a%b), q  = math.floor(a/b)

 pow(x,y[,z])

z가 없으면 x의 y제곱 결과를 반환하고,

z가 있으면 x의 y제곱 결과를 z로 나눈 나머지

(pow(x,y) %z) 의 결과를 반환한다. 

 round(number[,ndigits])

 실수인 number를 소숫점 이하 ndigits에서 반올림한다.

같은 거리에 2개의 정수가 있으면 짝수를 선택한다.


 ​## 예제 5


>>>abs(-1)

1

>>>abs(-1.0)

1.0

>>>abs(-1+2j)

2.23606797749979

>>>abs(-1-1j)

1.142135623730951

>>>abs(-1+1j)

1.142135623730951


>>>bin(11)

'0b1011'

>>>oct(11)

'0o13'

>>>hex(11)

'0xb'


>>>divmod(7,3)

(2,1)

>>>pow(2,3)

8

>>>pow(2,3,5)

3

>>>round(1.5)

2

>>>round(2.5)

2

>>>round(-1.5)

-2

>>>round(3.141592)

3

>>>round(3.141592,4)

3.1416


후앙 어려웡

다음번에는 문자열에 대해 알아보겠습니다..ㅠㅠ!

반응형