자료형이란 데이터의 형태를 말한다. 프로그래밍 언어마다 자료형에 대한 규칙이 있다. C를 예를 들면 int 형(32비트 정수형)이 있다.

 

파이썬의 자료형은 C나 Java에 비하면 복잡하지가 않다. 크게 보면

 

1 정수

2 실수

 

두가지가 있다.

 

1 정수형

>>> a = 1    #양수
>>> a = -10  #음수
>>> a = 0

정수는 양수,음수,0 이다. (중학교 수학시간 같다) 코드를 입력하면 a라는 정수형 변수를 만들어서 숫자를 대입한다는 의미로 보면된다.


2 실수형

 

실수형은 소수점이 있는 숫자이다. 학습백과에 보면 무한소수 같은게 나오는데 엄밀히 보면 무리수는 완벽히 표현이 안되는 것으로 봐야할 것이다. 무한대로 순환하는 개념은 컴퓨터에는 없다. 어느 소수점 자리에 가서는 끓어야 한다. 때문에 아주 높은 소수점 아래의 정밀도를 원한다면 별도의 방식을 사용해야 한다. 그냥 소수점이 있는 자료들을 실수형으로 취급한다고 생각하면 좋을 것이다.

 

나누다가 끓긴다

지수 표현방식도 있다. 0이 많아지면 너무 길어져 버리니까 지수를 쓰면 간결해진다.

 

 

*실수 학습백과에서 확인

 

실수 : 학습백과zum

학생을 생각하는 교과 정보

study.zum.com


3. 그밖에 (복소수 등)

- 복소수

 

이름도 생소한 복소수가 있다.(심지어 정규교육과정에 있다) 그런데 파이썬에 입문하면서 복소수를 사용하는 사람은 많지 않을 것이라 본다. 수학과나 수학선생님 정도가 필요로 하실 것 같다. 애초부터 허수니 뭐니 (imaginary numbers, 존재하지 않는 상상의 숫자) 일반인들에게는 이해하기 힘든 개념이다. 파이썬으로 복소수의 연산을 할 수 있다는 정도만 알고 지나가자. 필요한 분들은 파이썬의 Documentation인 cmath 문서를 참조하자.

 

'수학 모듈이 2개가 있는데 일부 사용자들은 복소수에 관심이 없기 때문이다. 아마도 그게 뭔지 조차 모를것이다' 라고 기술해놨다. 나도 비슷한 생각을 했는데 공식문서에서 보니까 더 놀랍다. 복소수가 뭔지 조차 모르니 아예 복소수 기능을 따로 만들어 분리해놨다는 말이다.

 

*출처: Python Documentation cmath 문서

 

cmath — Mathematical functions for complex numbers — Python 3.8.5 documentation

cmath — Mathematical functions for complex numbers This module provides access to mathematical functions for complex numbers. The functions in this module accept integers, floating-point numbers or complex numbers as arguments. They will also accept any

docs.python.org

- 2진수

 

이진수는 컴퓨터 기계어 자체인데 이 정도는 알아서 나쁠 것은 없다고 본다. 접두어(prefix) 0b를 붙여서 만들수 있고 인터프리터상에서 입력하면 10진수로 변환해서 출력한다. 이진수를 다루는 함수들이 있으나 이 포스트에서는 설명하지 않는다. 이진법이 궁굼하면 관련 포스트를 참고하도록 한다.

 

이진법

 

이진법과 2의 보수

이진법은 무엇인가? 아니 그 전에 십진법에 대해서 생각해보자. 십진법은... 누구나 알고 있는 진법이다. 십진법이라고 가르쳐주지 않아서 헷갈릴 뿐이다. 십진법은 이거다. 왼손 새끼손가락부��

digiconfactory.tistory.com

- 8진수,16진수

 

8진수나 15진수는 접두어 0o과 0x를 사용해서 표현한다. 파이썬에서 8진수나 16진수를 사용할 일이 얼마나 있을것 모르겠다. 비트연산자가 있긴 한데 하드웨어 레벨의 프로그래밍은 C언어쪽이 더 맞으니까, 파이썬에서 16진수를 사용하면 파이썬을 사용하는 의미가 퇴색될 것 같다. 상급 프로그래머를 위한 기능이니까 일단 8진수와 16진수를 파이썬에서 사용할 수 있다는 정도만 알고만 있자.


4. 숫자형 연산자

 

숫자형 연산자는 기본 사칙연산에서 시작한다. + - * / 여기서 코딩을 한번도 안해봤다면 * 와 / 표시는 낯설을 것이다. *는 곱셈이고 / 는 나눗셈이다. 정수끼리 곱하면 정수형이고 나눗셈을 하면 실수형으로 변환된다.

사칙연산

또 하나는 나머지 연산이라는 것이 있다. 결과값으로 나머지만 구한다. 알고리즘에서 많이 쓰인다. 3의 배수,5의 배수 이런 숫자를 구할 때 쓴다. % 퍼센트 표시다.

 

나머지 연산

한편 몫만 구할때는 // 연산자를 사용한다. 이것은 언어마다 차이가 있는 문법이니 혹시 다른 언어와 헷갈리지 않도록 주의한다.

몫 연산

제곱을 나타내는 ** 연산자도 유용하게 쓰인다. C언어에는 없고 파이썬에 있는 연산자이다. 2의n 승을 표현하면 아래와 같다.

 

제곱 연산

 


5. 문자열 자료형

문자열(String)은 말 그대로 문자가 나열되어 있는 자료형이다. 한글자 일수도 있고, 여러 글자일수도 있으며 공백이나 기호들이 포함될 수도 있다. 숫자도 문자열이 된다.

>>> "Hello World!"

>>> "Nice, Shot!"

>>> "Z"

>>> "1500"

기본적으로 따옴표 (' 나 ") 로 묶으면 문자열이 된다. 작은따옴표나 큰따옴표나 둘다 된다. 단 '문자열" 처럼 섞어 쓰지 않아야 된다. 문자열은 워낙 규칙이 다양해서 자신의 스타일에 맞는 방법을 찾아야 할 것이다. 아래 예제를 보면 방법이 다양한데 일정한 규칙은 있다. 큰따옴표로 시작하면 큰따옴표로 끝을 맺어야 한다거나, 따옴표 앞에 백슬래시를 입력하면 그 따옴표는 일반 문자로 인식이 된다거나 하는 규칙의 일관성이 있다.

 

다양한 문자열 표현법

멀티라인에 문자열을 입력하는 방법이다. """ 나 ''' 처럼 따옴표를 세개 사용해서 묶어준다. 라인이 넘어갈때 파이썬이 \n을 자동으로 추가해준다. \n 은 새로운 라인으로 넘어가라는 escape sequence 이스케이프 시퀀스라고 한다.

 

여러줄에 걸친 문자열 입력

 

*이스케이브 시퀀스 확인

 

Python 3 Escape Sequences

Python 3 Escape Sequences List of escape sequences available in Python 3. Escape Sequence Description Example \newline Backslash and newline ignored print("line1 \ line2 \ line3") Result line1 line2 line3 \\ Backslash (\) print("\\") Result \ \' Single quo

www.python-ds.com

문자열에 대해서 혹시나 더 알고 싶은 사람들은 아스키코드에 대한 내용을 검색해 보는 것을 추천한다. 파이썬 입문과정에는 컴퓨터의 구조에 대한 설명을 많이 할 필요가 없다. 잘못하면 파이썬의 재미적이 요소를 끌어내릴수가 있다. Python is for fun!

 

컴퓨터구조를 알고 싶으면 C언어를 배우는 것이 더 빠르다. 그런데 파이썬을 한참 하다보면 컴퓨터구조에 대한 이해가 필요할 때가 온다. 그리고 객체지향 프로그래밍에 대해서도 배워야 한다. 하지만 입문과정에서는 빠르게 자신이 필요한 레벨에 도달하는게 중요하다. 파이썬이 지향하는 바가 Life is too short, you need Python 이라면 인생은 짧으니까 파이썬으로 하고 싶은 일을 빨리빨리 할 수 있어야 한다.

 


6. 문자열 연산

문자열이 숫자가 아닌데 어떻게 연산이 가능할까 라는 의문이 들 수도 있다. 컴퓨터에서 연산이라는 것은 숫자를 더하는 것 뿐 아니라 문자열끼리 연결하는 것, 문자열을 변수에 대입하는 것 등을 의미한다. 컴퓨터입장에서는 그것도 연산의 결과니까 납득이 간다.

 

* 문자열 더하기

 

문자열 더하기(Concatenation)

C언어 같으면 함수로 이 작업을 할텐데, 문자열 연결작업이 워낙 자주 쓰이는 기능이다 보니 연산자로 만든 것으로 보인다. 실제로 사용할 때 + 하나만 붙이면 되니까 매우 편하고 자주 쓰게 된다.

 

* 문자열 곱하기

 

문자열 곱하기는 반복을 의미한다. "=" * 40 은 = 라는 문자열을 40회 반복하라는 말이다. for 루프 없이도 반복이 가능해서 편하다. 이것을 알고 별모양으로 도형 만들기 알고리즘을 작성하면 코드가 매우 쉬워진다.

 

여기까지 파이썬의 숫자형과 문자형에 대하여 알아봤다.

 

사실 문자열은 어느 프로그래밍 언어에 있어서나 매우 중요한 비중을 차지한다. 기계는 0과1뿐이지만 인간이 이해하는 것은 문자열이기 때문이다. 때문에 String 관련된 조작을 할 수 있는 함수들이 많이 발달해 있다. String에 관련한 포스트는 별도로 작성할 것이다. 다뤄야할 내용이 그만큼 많다.

공유하기

facebook twitter kakaoTalk kakaostory naver band