안녕하세요.
잠시 숨을 돌리고 왔으니 이번 시간에는 파이썬 데이터와 클래스에 대해서 알아보겠습니다.
데이터의 종류와 클래스에 대해서 학습을 하시면 조금 더 우아한 그리고 편안하게 코드를 작성하실 수 있겠습니다.
그리고 프로그래밍을 하기 위한 기본을 익혔으니 프로그래밍을 어떻게 조금 더 연습할 수 있을지 이야기해보도록 하겠습니다.
4. 파이썬 데이터 - 값을 다양하게 저장하자 :)
앞 페이지에서 이미 변수에 대해서 알아봤습니다.
앞에서 설명드린 변수에서는 하나의 변수에 하나의 값만 다뤘습니다.
하지만 2, 4, 5, 9, 10 이렇게 연속적인 숫자가 있을 때, 5개의 변수를 만들어야 될까요?
이런 경우, 데이터가 많아질 때 여간 불편한 게 아닙니다.
리스트, 딕셔너리, 튜플이라는 3가지 자료형이 있습니다.
하나의 변수에 하나의 값을 저장하는 것이 아닌 조금 더 우아하게 데이터를 다룰 수 있도록 하나씩 살펴보겠습니다.
1) List (리스트)
2, 4, 5, 9, 10이라는 숫자가 있습니다.
5개의 변수 선언이 아닌 리스를 사용하시면 하나의 변수로 위의 값들을 제어하실 수 있습니다.
my_list = [2, 4, 5, 9, 10]
코드를 보시게 되면 하나의 변수에 "[ ]"를 감싸 숫자들을 저장하였습니다.
리스트를 사용하여 값들을 변수에 저장한 것입니다.
my_list[0] = 3
my_list[2] = 1
print(my_list) # result: [3, 4, 1, 9, 10]
리스트 변수는 인덱스 값이라는 순서를 갖게 됩니다.
인덱스 값은 0부터 시작이 됩니다. (1이 아니에요!!) 리스트 개수는 5개가 있으니 인덱스 값은 0부터 4까지 존재합니다.
리스트 변수에 0부터 시작하는 인덱스를 입력하여 리스트 값을 변경하거나 출력할 수 있습니다.
사진을 보시게 되면 my_list라는 리스트를 선언하였습니다. 그리고 0, 2 인덱스를 사용해서 값을 변경하였습니다.
인덱스 0은 3으로, 인덱스 2는 1로 변경하였습니다.
다음 줄에는 for문을 사용했는데요. for문에서 list를 입력하여 사용할 수 있습니다. 그렇다면 우리는 list의 범위를 몰라도 list 전체가 출력이 될 것입니다. 자주 쓰는 패턴이니 눈여겨 봐주세요.
리스트의 값을 추가하고 싶을 때는 append 함수를 사용해주세요.
my_list = [2, 4, 5, 9, 10]
my_list.append('50')
print(my_list) # result: [2, 4, 5, 9, 10, 50]
append 함수를 사용하면 리스트에 값을 추가할 수 있습니다.
2) Dictionary (딕셔너리)
리스트에서는 값만 존재하였다면, 딕셔너리에서는 키(key) 값이 존재합니다. 예제를 보면 더 빠르게 이해가 되겠습니다.
my_dictionary = {
'name': 'jun',
'lang': 'pyhton',
'nationality': 'korea'
}
키값이라 함은 name, lang, nationality 가 되고, 값은 jun, python, korea가 됩니다.
사용방법은 리스트와 비슷합니다. 인덱스 대신 키값을 사용해서 값을 다뤄주시면 됩니다.
딕셔너리의 키값을 사용하여 값을 출력하는 예제입니다.
3) Tuple (튜플)
튜플은 리스트와 모습과 사용방법이 비슷합니다.
하지만 다른 점이 있습니다.
한번 초기화를 하고 나면 값이 변경이 안됩니다.
0번 인덱스의 값을 1로 변경하려는 시도를 합니다. 그리고 에러가 발생합니다.
사용방법은 리스트와 동일하나 다른 점이 있다면 값이 변경이 안되니 주의해주세요.
그럼 튜플은 언제 사용할까요?
튜플 특성 그대로, 변경하지 않을 값들을 저장하고 꺼내서 사용한답니다 :)
리스트, 딕셔너리, 튜플을 살펴봤습니다.
사용방법은 모두 비슷합니다.
리스트를 특히 많이 사용하기는 합니다. 프로그래밍을 하면서 "이 상황에 이런 데이터형을 사용하는 것도 좋겠다"라고 생각이 될 때 각각의 데이터형을 사용해보겠습니다.
5. 클래스 - 작성한 코드를 재사용하자 :)
클래스를 이야기 전에 객체(Object) 이야기부터 하겠습니다.
객체라 함은 현실세계의 객체들 예를 들어 자동차, 강아지 또는 사람 같은 것들을 객체라 합니다. 이런 객체들을 컴퓨터 세상에서 표현하기 위해서 클래스를 설계합니다.
즉, 클래스는 현실세계의 객체들을 컴퓨터 세상에 만들기 위한 설계도입니다. 이를 표현하기 위해서 정형화된 2가지 표현이 있습니다. 자동차라는 객체를 표현해보겠다고 생각하겠습니다.
"자동차 속도는 90km/h이다" / "자동차 기름이 5L가 있다" / "자동차가 달린다" / "자동차가 멈춘다"
가만히 보고 있으면 앞의 2개와 뒤의 2개의 차이점이 느껴지시나요?
앞쪽 설명은 자동차의 값과 관련된 내용이고, 뒤쪽에는 자동차의 행동에 관한 이야기입니다.
그렇습니다. 객체에서 중요한 표현 2가지는 값과 행동입니다.
이를 값은 속성(attributes)이라 하고 행동을 메서드(method)라고 합니다.
코드를 보면서 어떻게 클래스를 작성하는지 보도록 하겠습니다.
class Car:
def __init__(self, velocity, oil):
self.velocity = velocity
self.oil = oil
def run(self, num):
self.velocity += num
return self.velocity
def stop(self, num):
self.velocity -= num
return self.velocity
Car라는 클래스를 만들었습니다.
속성을 보시는 바와 같이 속도 그리고 기름이 있습니다.
행동은 달리는 행동인 run 함수와 멈추는 행동인 stop이 있습니다.
__init__ 함수는 Car라는 클래스를 활용하여 객체를 만들 때 최초에 값을 초기화할 수 있는 함수입니다.
객체를 만들어 보고 어떻게 활용하는지 보도록 하겠습니다.
my_car1 = Car(20, 50)
my_car2 = Car(90, 6)
my_car1.run(10)
my_car2.stop(20)
my_car1라는 Car 객체, my_car2라는 Car 객체 2개를 만들었습니다.
객체는 무수히 만들어 낼 수 있습니다. 이렇게 설계도를 하나 만들어 놓으면 코드를 재작성할 필요 없이 객체를 계속 만들 수 있습니다.
첫 번째 my_car1은 속도는 20, 기름은 50이라는 자동차를 하나 만들었고 두 번째 객체 my_car2는 속도는 90, 기름은 6이 남은 객체를 만든 겁니다. 각각의 자동차들은 클래스에 만들어 놓은 run, stop 메서드를 사용해서 속도를 올리고 내릴 수 있습니다.
이렇게 클래스를 만들고 객체를 만들어 사용을 하시는 겁니다 :)
클래스를 만들고 객체를 다루는 방법도 생각만큼 어렵지 않습니다. 이제는 클래스를 직접 설계해보고 객체를 만드실 수 있으실 겁니다.
이제는 프로그래밍을 할 수 있는 지식을 쌓았습니다. 정말 이 정도면 프로그래밍을 하실 수 있습니다!!
그렇다면 "이것이 전부인가? 다 배운 것인가?"라고 생각하 실 수도 있습니다.
지금까지 배운 내용 기반이면 프로그래밍을 하실 수 있습니다. 프로그래밍을 작성하시면서 필요로 하는 부분은 하나씩 하나씩 익혀나가시면 됩니다.
하지만 막상 프로그래밍을 하려면 익숙지 않으실 겁니다. 이유는 개념은 알겠는데 연습이 없어서 그렇습니다. 프로그래밍은 학습도 학습이지만 연습과 단련을 필요로 합니다. 그래서 제가 추천드리는 방법은 프로그래밍 문제들을 한 문제씩 풀어보고 연습을 하시는 겁니다.
https://leetcode.com/problemset/algorithms/
Leetcode라는 알고리즘 사이트이며 추천드리는 사이트입니다 ^^
처음 풀어보면 쉽지 않습니다. 하지만 추천드리는 이유는 문제를 풀기 위해서 이것저것 작성해보시는 겁니다. 그리고 고민을 해보고 시간이 많이 지체되어 모르겠다 싶으면 해설을 보고 소화시키시면 됩니다.
그렇게 한 발자국씩 앞으로 나아가시면 되겠습니다.
이것으로 파이썬 데이터, 클래스 개념 파트도 마치도록 하겠습니다.
감사합니다.
'개발 이야기 > python 독학' 카테고리의 다른 글
파이썬으로 주식 트레이딩을 활용하자 (퀀트의 시작) (0) | 2020.03.10 |
---|---|
파이썬을 내 손, 발처럼 - 알고리즘을 공부하자(leetcode #1) (2) | 2020.03.06 |
한 페이지로 보는 꼭 챙겨야 할 파이썬 기초와 예제 #1 (변수, 조건문, 반복문) (0) | 2020.02.22 |
파이썬 독학 - 환경 세팅(파이썬 설치, 가상환경 구성) (2) | 2020.02.21 |
파이썬 독학, 혼자 공부해보자 (0) | 2020.02.18 |