본문 바로가기
python/python 해보자

Python 해보자 [4] = 숫자 자료형 (int, float)

by 야호호코코 2025. 2. 13.
반응형

1. 자료형이란?

 같은 사람이라도 그 성격과 생김새, 할 수 있는 일 등이 다르듯이, 변수 끼리도 각자 역할이 다르다. 일단 그 생김새와 할 수 있는 일을 규정하는 것이 바로 자료형이다. 자료의 형태를 규정하여 저장된 값이 할 수 있는 연산을 규정하는 것이다. 

 변수의 자료형이 무엇인지는 type() 함수로 확인이 가능하다. 변수를 선언하고, type(변수명)을 출력하면, 변수가 어떠한 자료형인지를 알 수 있다. 다음과 같이 해보자.

a = 1
b = 1.1
c = 'hello'
d = True
e = [1, 2, 3]
f = {1 : 1}

print("a", type(a))
print("b", type(b))
print("c", type(c))
print("d", type(d))
print("e", type(e))
print("f", type(f))

 

 이렇게 코드를 작성하면 각 변수 a,b,c,d,e,f의 자료형을 출력할 수 있다. a부터 f까지 차례대로 int, float, str, bool, list, dict일 것이다. 앞으로 차차 배우게 될 것들이다. 오늘은 이 중에서 가장 간단하고 친숙한 녀석들인 int와 float에 대해 배워보도록 하겠다.


2. 정수형 int 

 '숫자' 하면 떠오르는 형태의 자료형이다. 소수점 이하로는 존재하지 않는, 깔끔한 형태의 숫자이다. C언어를 아는 사람이라면 정수형에는 한계점이 존재한다고 들었겠지만, 파이썬의 int는 범위가 없다고 봐도 무방하며, 한계점에 도달할 정도로 사용하려 하면 프로그램이 먼저 다운될 것이다. 그러니 범위는 신경쓰지 말도록 하자.

 정수형 변수를 만드는 방법은 소수점이 없는 숫자를 대입하는 것과, 다른 형태의 자료형을 int로 변환하는 것이다. 다음의 코드를 보자.

int_var = 112312312		# 정수형 변수 선언

int_var_2 = int(123.12312)	# 실수 -> 정수
int_var_3 = int("1231231")	# 문자 -> 정수

 

 첫번째 int_var은 처음부터 소수점이 없는 숫자로 대입했기 때문에 자동적으로 int형 변수로 선언이 된 것이다. 

 int_var_2는 소수점이 달려있는 숫자인 실수(float)을 int() 함수에 넣어 int로 강제 변환을 시킨 것이다. 이렇게 실수에서 정수로 변환을 하면, 소수점 이하는 버려진다.

 int_var_3는 문자열 자료형을 int() 함수에 넣어 int로 강제 변환을 시킨 것이다. 이 때 주의할 점은, 문자가 모두 소수점이 없는 숫자로 표현이 되어 있어야하는 것이다. 다른 문자가 섞여있는데, int로 변환 시도를 하면 에러가 난다.

 

 이렇게 여러 방법으로 정수형 변수를 만들어 사용할 수 있다. int() 함수를 이용해 다른 자료형의 변수를 int로 변환하는 방법은 유용하게 사용되니, 잊지 말도록 하자. 앞으로 나올 자료형들도 float(), str() 등등 변환할 수 있는 함수들이 있다. 


3. 실수형 float

 정수형에 반해 실수형은 소수점이 있는 숫자이다! 이렇게 정수형과 별개의 자료형으로 존재하는 이유는, 컴퓨터의 연산 방식의 차이가 있기 때문이다. 자세한 건 전공자 수준이니 생략하자!

 실수형 변수를 만드는 방법도 정수형과 마찬가지로 대입, 변환이 있다.

a = 123.456		# 실수 대입 선언
b = float(10)	# 정수 -> 실수
c = float("123.456")	# 문자 -> 실수

print(a, b, c)

 

 a는 123.456이라는 실수를 그대로 대입하여 선언했다.

 b는 정수 10을 실수로 변환하는 것이다. 정수를 실수로 변환하면, 정수 아래 소수점이 생겨 10 -> 10.0과 같이 변한다. 

 c는 문자 123.456을 실수로 변환한 것이다. 정수와 마찬가지로 숫자와 소수점만 존재해야한다. 소수점이 없어도 실수로 변환이 가능하다. 이때는 정수를 실수로 변환한 것처럼 아래 소수점이 추가될 것이다.


4. 연산 해보자

 정수형과 실수형은 공통적으로 계산을 할 수 있다! 추후에 자세히 다룰 것이지만, 미리 정수형, 실수형들이 할 수 있는 연산에 대해 찍먹해보고, 연습해보자.

 

 4-1. 덧셈 +

 정수 + 실수든, 정수 + 정수든, 실수 + 정수든 모두 가능하다. 변수에 저장해 덧셈을 수행해도 되고, 변수에다 숫자를 직접 더해도 되고, 숫자와 숫자를 더해 변수에 대입해도 된다. 수학에서 떠올릴 수 있는 모든 방식으로 가능하다.

a = 3
b = 5
c = a + b
print(c)	# 8

a = 2.1
b = 4
c = a + b 	
print(c) 	# 6.1

a = 4 + 10
print(a)	# 14

a = 6
b = a + 4
print(b)	# 10

 위 코드에서 볼 수 있듯, 다양한 방법으로 덧셈을 수행할 수 있다!

 

 4-2. 뺄셈 -

 덧셈과 마찬가지이다. 다양한 방법으로 뺼셈을 해보자.

 

 4-3. 곱셈 *

 수학에서의 곱셈을 생각하면된다. 우선순위도 물론 수학에서의 그것과 동일하게 적용된다. 덧셈, 뺄셈보다 곱셈, 나눗셈이 우선으로 연산된다.

 

 4-4. 거듭제곱 **

 파이썬에 있는 특색있는 연산자 중 하나. 예를 들어 a**b로 표현하면, a의 b제곱이 된다. 2**3은 2의 3제곱이므로 8이 된다는 것이다. 이를 이용해서 제곱근도 구할 수 있다. a**(1/2)을 하면 루트를 씌운 것과 동일하게 연산된다. 다만 이 때 결과는 float형으로 나온다.

a = 2 ** 2
print(a)	# 4

b = 3 ** 3
print(b) 	# 27

c = 4 ** 2
print(c)	# 16

d = 16 ** (1/2)
print(d)	# 4.0

 

 4-5. 나눗셈 /

 수학에서의 나눗셈과 같다. 하지만 파이썬 만의 특징은, 연산 결과가 무조건 실수(float)형으로 나온다는 것이다. 5 / 5를 연산하면 1이 아니라 1.0이 나오는 것이다. /을 하나만 쓰는 나눗셈은 분수 형태를 실수형으로 나타내는 것이라고 이해하면 편하다. 그렇기 때문에 항상 소수점이 준비되어 있는 것이다.

a = 3 / 3
print(a) 	# 1.0

b = 7 / 2
print(b)	# 3.5

 

 4-6. 몫 //

  파이썬에 있는 특색있는 연산자 중 하나2.  나눗셈(/)은 분수로 나타낸 나누기를 그대로 실수(float)화 시키는 것이라고 생각한다면, 이 몫 연산자(//)는 나머지 부분을 버리고, 몫 부분만을 결과로 사용한다. 그렇기 때문에 정수(int)형 결과가 나온다. 

a = 3 // 2
print(a) 	# 1

b = 15 // 4
print(b)	# 3

c = 100 // 15
print(c) 	# 6

 

 4-7. 나머지 %

 몫 연산자에서 버려진 나머지를 계산할 수 있는 연산자이다. 주로 짝수냐 홀수냐, N의 배수이냐를 감별할 때 사용한다.

a = 3 % 2 
print(a)	# 1

b = 15 % 4
print(b)	# 3

c = 100 % 15
print(c) 	# 10

5. 연습문제

 

 연습문제 1. 하나의 변수에는 3, 또 다른 변수에는 4.5를 저장하고, 이 둘의 곱셈의 결과값을 출력하시오.

 

 연습문제 2. 하나의 변수에 5.5를 저장하고, 다른 변수에는 이를 정수형으로 변환한 값을 저장하고, 이 둘을 출력하시오.

 

 연습문제 3. 세 변수에 각각 100, 200, 300을 저장하고, 각 변수를 30으로 나눴을 때 나머지 값을 출력하시오.

 

 연습문제 4. 세 변수에 각각 3, 6, 9를 저장하고, 각 변수의 3제곱을 한 값을 출력하시오.

반응형

'python > python 해보자' 카테고리의 다른 글

Python 해보자 [5] = 문자열 자료형 (str)  (2) 2025.02.13
python 해보자[3] = 변수  (3) 2025.02.09
python 해보자[2] = 출력 해보자  (5) 2025.02.07