반응형

개요

 자료형은 프로그램에서 값을 다루기 위해서 정의된 것이다. int와 float는 기본적으로 정의 되어 있는 기본 자료형이다. 내부에서는 숫자도 구분하고 문자열도 구분 한다. Python 에서는 대입하는 결과를 문법이 유추해서 변수의 자료형을 정의하여 값을 대입한다.

 이 때문에 코드를 작성했을 때 숫자 자료형을 명확히 구분하지 않는 것 같으나 내부적으로는 구분을 하고 있다. 정수형은 int, 실수형은 float로 구분하고 있다. 실수형이 표현 가능한 숫자의 범위가 더 크기 때문에 소수점이 포함된 수치와 정수형 수치를 연산하게 되면 python은 자동으로 실수형으로 자료형을 바꿔서 연산을 한다.

 int 형은 정수형만 표현하여 내부적으로 0과 1을 하나씩 카운트 하는 방식이라 비교적 정확한 연산이 가능하다. 반면 float  는 소수를 포함한 실수형이라 내부적으로 실수부 자리 표기를 분리해서 사용하기 땜누에 비교적 큰 범위의 숫자 표현이 가능하지만 연산 횟수가 많으면 오차가 발생한다. 이 이유는 진법에 의한 수학적인 이유 때문이다. float 형은 잦은 연산을 하지 않는 것이 좋고 유효숫자를 정해 놓는 것이 오차를 줄일 수 있다.

 float 형에서 많은 연산을 하면 왜 오차가 발생하는지는 기회가 되면 정리하도록 하자.

산수 연산자(Arithmetic Operators)

숫자형은 기본적인 사칙연산을 사용할 수 있다. 이외 기본적인 연산자에 대해서 살펴보자. 만약 C 나 다른 언어를 알고 있다면 Python 만의 독특한 연산자도 보일 것이다. 반대로 python 에서는 없어진 연산자도 있을 것이다.

+

더하기 연산자이다. 이 연산자를 기준으로 좌우의 값을 더한다. int 형 값과 float 형의 값을 연산하게 될 경우 최종적으로 float 값으로 반환이 된다.

1 + 1.1
# 2.1 (float)

1.1 + 1
# 2.1 (float)

1 + 1
# 2 (int)

*

 곱 연산자이다. 연산자의 좌우의 값을 곱한다. 왼쪽이나 오른쪽 값 중에 float 형이 있는 경우 결과는 float 형이 된다.

1 * 1
# 1

2 * 2
# 4

2 * 1.1
# 2.2

-

빼기 연산자이다. 연산자의 오른쪽에 있는 값을 왼쪽에 있는 값에서 뺀다. 마찬가지로 int와 float 값을 연산할 경우 최종 결과는 float 형이 된다.

3 - 1
# 2

1 - 3
# -2

1.1 - 2
# -0.9

/

나누기 연산자읻다. 일반적으로 타 프로그래밍 언어에서는 연산자의 좌우가 int 형일 경우 몫만 반환한다. 그러나 파이썬에서는 몫으로 딱 나눠떨어지지 않으면 float 형으로 변화해서 소수점으로 결과를 반환한다.

3 / 2
# 1.5

10 / 2
# 5

//

몫 연산, 일반적인 타 프로그래밍 언어에서 나누기 연산자를 사용한 결과와 같다. 나누었을 때 나머지가 있어도 무시하고 몫만 반환한다.

3 // 2
# 1

10 // 2
# 5

%

나머지 연산. 연산자의 오른쪽 값으로 나누었을 때 나머지만 반환한다. 이때 나머지는 int 형으로 반환한다. 프로그래밍에서 은근히 많이 쓰이는 연산이다.

3 % 2
# 1

10 % 2
# 0

**

제곱 연산자이다. 파이썬의 독특한 문법이다. 실제로는 여러번 곱하는 걸 코드상 간당하게 작성한 것이기 때문에 여러번 곱연산 한것과 성능차이는 크지 않다.

2 ** 3
# 8

할당 연산자(Assignment Operators)

축약된 형태의 연산자로 연산자의 왼쪽 값과 오른쪽 값을 연산한 결과를 다시 왼쪽 변수에 대입하라는 의미이다. 대입 연산자처럼 왼쪽은 변수가 되어야 한다.

+=

 왼쪽의 값에 오른쪽에 있는 값을 더한 뒤에 다시 왼쪽 변수에 대입을 한다. 만약 왼쪽이 int 형이고 오른쪽이 float 형인 경우 왼쪽도 float 형이 된다.

a = 1
a += 1
a
# a 는 2

a += 1.1
a
# a 는 3.1

*=

 연산자의 왼쪽 변수값에 오른쪽 값을 곱 연산한 결과를 왼쪽 변수에 대입을 한다.

a = 1
a *= 3
a
# a 는 3

a *= 3
a
# a 는 9

-=

연산자의 왼쪽 변수 값에 오른쪽 값을 빼기 연산한 결과를 왼쪽 변수에 대입을 한다.

a = 10
a -= 2
a
# 8

/=

연산자의 왼쪽 변수 값에서 오른쪽 값을 나누기 연산한 결과를 왼쪽 변수에 대입을 한다.

a = 10
a /= 2
a
# 5

a /= 2
a
# 2.5

//=

 연산자 왼쪽 변수 값에 오른쪽 값으로 나누기 연산한 몫을 왼쪽의 변수에 대입한다.

a = 5
a //= 2
a
# 2

%=

연산자의 왼쪽 변수 값에 오른쪽 값으로 나눈 나머지를 왼쪽 변수에 대입한다.

a = 5
a %= 2
a
# 1

**=

연산자의 왼쪽 변수값에 대한 오른쪽 값 만큼 제곱하여 왼쪽 변수에 대입한다.

a = 2
a **= 3
a
# 8

a **= 2
a
# 64

 

반응형

'Python > 배경이 있는 파이썬' 카테고리의 다른 글

문자열(str)  (1) 2024.04.27
문자 code  (0) 2024.04.24
변수(variable)와 상수(constant)  (0) 2024.04.23
개발 환경 만들기  (0) 2024.04.22
파이썬 3 설치  (0) 2024.04.22

+ Recent posts