본문 바로가기
Python/Do it! 점프 투 파이썬

[Do it! 파이썬] 2. 파이썬 프로그래밍의 기초, 자료형

by Couldi 2023. 9. 12.
반응형

23. 9. 12.

- Could -

 

이 글은 막연히 python을 공부해야하나 라는 불안감으로 python으로 프로그래밍을 입문하는 사람들을 위한 글입니다.
python을 시작하는 많은 분들이 보는 '점프 투 파이썬' 책을 중심으로 '필자의 주관'이 잔뜩 담긴 설명을 추가하여, 파이썬 공부에 흥미를 붙이고 책 완주 후의 계획을 수립할 수 있도록 쓰여졌습니다.
'점프 투 파이썬'은 wikidoc(https://wikidocs.net/book/1)으로 무료로도 확인 가능합니다.
1. 자료형 공부 전에 알아야할 것 - 데이터와 데이터타입
2. 자료형의 종류
3. 변수

1. 자료형 공부 전에 알아야 할 것 - 데이터와 데이터타입(자료형)

다짜고짜 파이썬의 자료형을 공부하기 전에 '데이터'라는 것을 조금 생각해보자. 세상 모든 것은 데이터로 해석해볼 수 있다. 하지만 그런 철학적인 이야기 하기전에 우리가 프로그래밍에서 다루는 '데이터'에 한정해 생각하자. 데이터는 컴퓨터가 정보를 처리하는 기본 단위이다. 많은 사람들이 알고있는 bit나 byte같은 개념은 그 데이터의 크기를 나타내는 단위이다.

글, 숫자, 영상, 색상, 사진 등등 컴퓨터로 다뤄지는 모든 것은 데이터다.

데이터를 다양하게 분석해 볼 수도 있지만, 프로그래밍 초심자에게 데이터는 단순하게 '타입(type)'과 '값(value)'로 구분 된다는 사실만 알아도 괜찮다. 

기억하자.

 

모든 데이터는 타입(type)과 값(value)을 가진다.

데이터 타입(type)

데이터 타입이라고 영어로 적었지만, 이걸 번역한 것이 자료형이다. 자료형이나 데이터타입이나 프로그래머들도 용어를 섞어쓰니 둘다 알아두는 것이 좋다. 이 데이터타입은 프로그래밍 언어에 따라 구분하는데 약간의 차이가 존재하긴 하지만, 대부분 유사하다. 엄격하게 데이터 타입을 구분해가며 프로그래밍을 해야되는 언어도 있고, 파이썬 처럼 조금 느슨하게 해도 프로그래밍언어가 알아서 처리해주는 언어도 있다. (와! 역시 파이썬! 너무 좋아! 라고 생각하지 않았으면 좋겠다. 그냥 파이썬의 특징이고, 이러한 특징 때문에 파이썬이 문제있다고 얘기하는 사람들도 존재한다.)

위키에서 다루는 자료형(데이터타입)에 대한 개념이다.

각 데이터 마다 어떤 '타입'의 데이터인지 구분 하는 것이 중요하고, 이제부터 파이썬이 구분하는 데이터타입에 대해 알아보자. 프로그래밍을 공부할 때는 이런 데이터타입에 대한 고려가 꼭 필요하다. 고려없이 데이터타입을 하다가는 의도하는대로 동작하지 않는 프로그램을 마주하기 십상이다.

 

2. 자료형

  • 숫자형(Number)
  • 문자열(String)
  • 불(bool)
  • 리스트(list)
  • 튜플(tuple)
  • 딕셔너리(Dictionary)
  • 집합(set)

위 항목들이 파이썬을 공부할 때 기본적으로 알아야하는 자료형들이다. 일단 가장 기본적으로 문자와 숫자를 구분해보자. 가장 많이 사용하는 데이터타입이다.

숫자형

숫자형은 크게 정수형과 실수형타입으로 나누어진다.

# 정수형 int
1234
5
6
234

# 실수형 float
1.35
366.88
3456.2

쉽게 설명하자면 소수점이 없이 깔끔하게 떨어지는 숫자들은 '정수형', 소수점이 존재하는 숫자들은 '실수형'이라고 생각하면 된다. 파이썬에서는 이 각각의 데이터타입을 'int'와 'float'이라고 부르기도 하지만, 기억이 어렵다면 단순하게 '숫자형이(Number)다.' 라고만 기억해도 괜찮다.

 

문자열

문자면 문자지 왜 문자열이라고 하느냐고 물어보면 거기에는 심오한 프로그래밍 언어의 세계가 있다. 사실 문자형 이라는 자료형도 존재한다. 각 알파벳 'a', 'b', 'c'와 같이 한글자 한글자를 문자형이라고 부르고 'char'라는 데이터타입을 가진다. 굳이 지금은 몰라도 된다. 일반적으로 문자들은 덩어리로 작성해서 데이터를 사용하기 때문에 문자가 나열 되어 있다는 뜻으로 '문자열'이라고 칭한다. 영어로는 String이라고 한다.

# 문자열은 따옴표 안에 쓴다.
"이렇게 쓸수도 있고"
'이렇게 쓸수도 있다.'
"숫자도 아래처럼 쓰면"
"15677"
"1233.67"
'모두 문자열로 친다'

프로그래밍언어가 문자열을 구분하게 하는 방법은 ' '(따옴표), " "(쌍따옴표)이다. 일단 그것만 알자.

 

사실 문자열과 숫자 데이터타입이 있다는 것만 아는 것 보다, 이 데이터타입들을 어떻게 다루는지 아는 것이 훨씬 중요하다. 하지만 현재 글에서는 각각에 대한 내용을 다루지 않는다. 기본적으로 자료형들의 모습을 조망하고, 변수라는 개념을 익히는데 초점을 맞출 예정이다.

 

불(bool)

진리값이라고 한다. 데이터를 참이냐 거짓이냐 구분 할 때 사용하는 데이터 타입으로 True와 False 이렇게 두 값만 가진다.

True
False

위와 같이 쓰긴 하는데.. 실제로 저걸 타이핑 할 일은 공부할 때말고는 많이 없다. 중요한 점이 있다면 첫 글자를 대문자로 작성해야 bool값으로 파이썬이 인식한다.

 

리스트

앞서 문자열이 문자들의 나열이라고 했다면, 리스트는 데이터들의 나열이다. 아래 처럼 쓴다

# 리스트는 [ ] 기호를 통해 표시한다.
[1, 2, 3, 4, 5, 6]
["이렇게", "문자열도", "넣을수", "있다"]
[1, 3, "정말", 2, "다"]

위 예제처럼 숫자만 넣어서 리스트를 만들 수도, 문자열만 넣어 리스트를 만들 수도 있다. 리스트는 데이터를 []를 사용해서 하나로 묶고, 내부에서  ,(쉼표)를 사용해서 구분한다.

그 과정에서 리스트안에 데이터가 몇번째에 위치하는지 구분할 필요가 있어서, 아래와 같이 진행한다. 안에 들어있는 데이터 각각을 요소(element)라고 부르고, 인덱스(index)를 통해 각 요소에 접근한다.

 

그렇다면 리스트는 언제쓸까? 진짜 여기저기 많이 쓴다. 가장 많이쓴다고 해도 과언이 아니다. 데이터가 나열되어 있는 만큼 각 데이터에 접근해서 사용하는게 중요하고, 많은 사용법들이 존재한다. 이 역시 본 글에서는 다루지 않고, 별도로 다루도록 하겠다. 궁금하다면 '점프 투 파이썬' 책을 읽어보기 바란다.

 

튜플

튜플은 리스트와 거의 유사하다. 차이가 있다면 ()를 통해 묶는다는것, 리스트와 다르게 내부 값의 수정이 불가능하다는 점이 있다.

# 튜플은 이렇게 쓴다.
(1, 3)
(1, 23, 5)

 

딕셔너리

리스트가 단순한 데이터의 나열이고, index를 통해 데이터에 접근을 했다면, 딕셔너리는 'key'와 'value'로 값을 구분하여 저장한다.

아래와 같은 모습이다.

# 딕셔너리는 아래와 같은 형태이다.
{
    'name': 'harry',
    'age': 12,
    'weight': "60kg"
}

중요한 건 'key'와 'value' 쌍으로 데이터를 입력해야하고, 각 쌍은 쉼표로 구분해야된다는 점이다. 리스트와 다르게 순서가 존재 하지 않아, key나 value를 통해 데이터를 찾고 사용해야하는 특징을 가진다.

 

집합(set)

집합자료형은 말 그대로 집합을 쉽게 처리하기 위해 만들어진 자료형이다. 딕셔너리까지만 해도 머리가 터질지 모르니 여기서는 과감하게 스킵하도록 한다. 궁금하다면 검색해서 알아보길 바란다.

 

3. 변수

위에 다룬 수많은 데이터들을 프로그래밍에서는 어떻게 사용할까? 기본적으로 변수라는 이름의 상자에 담에서 사용하는 편이다. 복잡한 데이터든, 단순한 데이터든 일단 상자 안에 집어넣고, 필요할때마다 해당 상자를 가져와 사용한다.

 

상자!

변수는 데이터를 담아두는 상자이다. 예를 들자면, 아래처럼 사용한다.

 

name = "Could"
print(name)

name이라는 변수를 만들어 그 안에 "Could"라는 문자열을 집어넣고, print를 통해 name안에 담긴 변수를 출력하는 코드이다.

 

일반적으로 프로그래밍에서는 변수를 '선언'하는 것과 변수를 '할당'하는 것을 구분하는데 파이썬은 두 과정을 대부분 동시에 진행한다.

나누어 설명하자면 '변수를 선언하는 것'은 상자를 만드는 과정, 위 코드의 예제로 보자면 name 이라고 적는 부분을 의미한다.

'변수를 할당하는 것'은 앞서 만들어진 변수안에 데이터를 담는 과정으로, 위 코드 예제에서 보면 = "Could" 부분이 해당한다.

 

앞으로 프로그래밍에서 다루는 많은 연산자들을 다루겠지만 = 이라는 녀석은 대입연산자라고 부른다. 수학에서 말하는 '같다'는 의미가 아니라 '오른쪽에 있는 데이터를 왼쪽에 넣어라' 라는 의미 사용된다는 점만 기억하자.

반응형

댓글