IT일반

프로그래밍 | 파이썬 - 자료형(1) | 숫자 자료형과 변수에 대해 알아보자.

블로그 하는 으노 2024. 9. 27. 17:00
반응형

오늘은 자료형에 대해 이해하기 위해 IDLE을 활용하여 대화형 콘솔에서 프로그래밍을 해볼 것이다. 프로그래밍 같지 않은 활동이지만 파이썬을 이해하는 데 도움이 될 것이다.

대화형 콘솔 IDLE Shell

IDLE이 어디있는지 모르겠다면 윈도우 키 옆 검색창에서 IDLE이라고 검색하면 된다. IDLE Shell은 한 줄 한 줄 명령어를 처리하는 대화형 콘솔인데, 이를 이해하기 위해 사칙연산 기호에 유의하여 사칙연산 계산을 시켜보자.

+ - * / // % **
덧셈 뺄셈 곱셈 나눗셈 나눗셈의 몫 나눗셈의 나머지 제곱연산

 

(첫 번째) 정수형의 계산, (두 번째) 실수형의 계산, (세 번째) 정수형과 실수형 혼합 계산

* #으로 처리된 빨간 부분은 '주석'이라는 것인데 프로그래밍에는 아무 영향도 주지 않지만 어떤 코드인지 설명하기 위해 기록하는 부분이다.

먼저 가장 왼쪽 화면을 보자. (>>>) 커서에 쓰인 검은 글씨는 사용자의 입력이고 파란 글씨는 IDLE이 반환한 출력값이다. 대화형 콘솔로써 간단한 계산을 명령하면 즉각적으로 처리해주는 것이다.

가장 왼쪽의 연산은 정수형 숫자들로 계산을 처리했다. 소수점 이하가 없다는 뜻이다. 결과도 정수형으로 출력되었다. 중간에 있는 화면은 실수형 숫자들로 계산을 처리했다. 소수점 이하를 포함한 숫자의 계산은 결과도 실수형으로 나타났다. 가장 마지막 화면은 정수형과 실수형을 혼합하여 계산을 처리했다. 결과는 실수형으로 나타났다.

자료의 형태를 일관성 있게 처리한다는 것은 자료의 형태를 중요하게 생각한다는 뜻이다. 프로그래밍 과정에서 자료의 형태를 [ 자료형 ]이라고 한다. 프로그래머는 이 자료형에 유의하여 프로그래밍을 해야 하는데, 서로 다른 자료형의 연산이 처리되지 않는 경우도 있고 프로그래머의 의도와 다른 결과를 출력하게 될 수도 있기 때문이다.

 

자료형(data type)

파이썬은 다른 프로그래밍 언어에 비해 자료형의 처리를 유연하게 하는 편이다. 그럼에도 자료형의 경계와 구분은 어느 프로그래밍 과정에서든지 엄격하게 지켜져야 오류나 버그를 줄일 수 있기 때문에 자료형을 잘 알고 있으면 완성도 높은 프로그램을 만드는 데 도움이 된다. 자료형에는 다음과 같은 것들이 있다.

  • 숫자 자료형
  • 문자열 자료형
  • 리스트 자료형
  • 튜플 자료형
  • 딕셔너리 자료형
  • 집합 자료형
  • 불 자료형

일단은 숫자 자료형, 문자열 자료형, 리스트 자료형을 공부할 것인데! 숫자 자료형부터 차근차근 살펴보자.

 

숫자 자료형

숫자 자료형은 말 그대로 숫자를 취급하는 자료형태이다. 위에서 연산을 수행했던 정수형과 실수형이 대표적인 자료형이다. 수학에서의 수체계에서는 실수에 정수가 포함되어 있지만 프로그래밍 언어에서는 정수형과 실수형의 자료형을 구분하여 프로그램의 오류를 줄이고 일관성과 효율성을 도모한다.

  • 정수형 : int형이라고도 한다.(정수를 뜻하는 영어 단어 Inteager의 약식 표현이다.) 소수부(소수점 이하에 숫자)를 가지지 않고 있다. 음의 정수, 0 , 양의 정수를 포함한다.

-213, 0, 213 등

  • 실수형 : float형이라고도 한다.(부동 소수점을 의미하는 Floating-point의 약식 표현이다.) 소수부를 가지고 있다.

-2.13, 2.13, 2.13e-8 등 ( 2.13e-8은 2.13 x 10-8을 의미한다.)

 

연산의 우선순위​

수학에서 사칙연산을 하려면 연산의 우선순위를 잘 지켜야한다. 덧셈과 뺄셈 보다는 곱셈과 나눗셈을 먼저 하고, 괄호가 있을 때는 괄호를 먼저 계산하는데, 잘 지키지 않으면 전혀 다른 결과를 도출하게 된다. 프로그래밍 과정에도 연산의 우선순위가 있다. 지금은 뭔지 다 모르지만 사칙연산의 우선순위 정도는 알아두면 좋을 것 같다. 위에서부터 아래로 우선순위가 있다. (위쪽의 연산을 먼저 수행하고 그다음 아래 연산을 수행한다.)

파이썬 연산자 우선순위

 

변수

프로그래밍에서의 변수는 수학에서의 변수와 의미가 조금은 다르다. 수학적으로는 상수와 반대되는 개념으로, 정해지지 않은 임의의 수를 표현하는데 변할 수 있는 값이라는 의미를 가지고 있다. 반면에 프로그래밍에서는 자료를 저장하기 위한 메모리이다. 어떤 값을 할당하기 위해 필요한 공간으로 프로그래머 또는 사용자가 어떤 값을 할당하느냐에 따라 프로그램의 결과가 다르게 나타날 수 있다. "변수를 선언한다."라는 의미를 "메모리 공간을 확보한다."라고 이해하면 좋다.

파이썬의 변수 선언은 조금 특이한 특징을 갖고 있다. 일반적으로 다른 프로그래밍 언어에서는 변수를 선언하기 위해 자료형까지 분명히 해줘야 한다. 예컨대, C언어에서 정수형 변수 a를 선언하고 숫자 5를 할당한다고 하면 다음과 같이 써야 한다.

int a = 5;

빈 그릇에 a라고 이름 붙이고 5라는 값을 저장하는 행위이다.

빈 그릇에 a라고 이름 붙이고 5라는 값을 저장하는 것과 같다. 정수형으로 선언된 a는 정수형 데이터만 처리할 수 있는 변수이다. 만약에 a/2를 수행하게 되면 2를 출력하게 된다. 파이썬은 어떨까?

a = 5

파이썬은 자료형을 따로 선언해주지 않아도 할당되는 자료에 따라 정수형인지를 인지할 수 있게 되어있다. 그러면 마찬가지로 a/2를 수행해보자.

2번 줄에서 a변수에 할당된 자료를 출력했더니 3번 줄에서 5가 출력된 것을 확인할 수 있다. 4번 줄에서 a변수에 a/2(=5/2) 실행 결과를 다시 할당하고 5번 줄에서 출력을 실행했다. 그런데, 6번 줄에서 출력 결과는 2.5로 정수형 자료를 출력하게 되었다.

파이썬은 큰 무리가 없으면 자료의 형변환을 유연하게 처리하는 편이다. 그러나 이건 좋은 코딩 습관은 아니다. 내가 프로그래밍 하는 과정에 사용하는 자료가 어떤 자료형인지를 파악하고 분명히 명시해줘야 오류를 줄일 수 있다. 변수와 자료의 할당에 대해 조금은 이해할 수 있게 되었을 테니 위에서 했던 사칙연산을 변수를 활용하여 수행해보고 마무리하자.

변수를 활용할 때의 강점은 처리할 자료가 변경되는 경우에 변수에 할당되는 값만 변경해주면 된다는 것이다. 중간에 a가 10으로 변경되면, a에 할당되는 값만 변경해주고 동일한 연산을 수행해주면 된다. 지금은 잘 체감되지 않지만 조건문, 반복문, 함수 등 복잡한 프로그래밍이 시작되면 어떤 의미인지 보다 명확히 이해할 수 있다.

반응형