studying data

문제의 본질을 꿰뚫어 해결책을 찾는 법을 공부합니다

콤퓨타 공부/Python

[python 공부] 기초강의 전체 되돌아보기

study_data 2021. 8. 28. 15:22

파이썬이 왜 배우기 쉽다고 하는걸까요?

처음 배울 때 쉽게 느껴지지 않고 어려울 수 있습니다. 그런데 자바와 비교해볼까요? 똑같은 결과를 만들기 위한 코드 작성 과정이 자바에 비해 파이썬이 훨씬 더 짧고 간결합니다. 분량이 짧으면 괜찮겠지만 기능이 복잡해지면, 몇배로 차이가 날 수 있겠죠? 물론 자바도 객체지향의 시조와 같은 언어로 굉장히 훌륭합니다. 하지만 초심자로서 배우기에는 훨씬 더 진입장벽이 낮은 편이기에 '상대적으로 쉽다'고 하는 것이죠. 그러나 프로그래밍 언어를 처음 해볼 때 어렵게 느껴질 수 있습니다. 

 

변수는 값을 담아놓는 공간이라고 생각할 수도 있습니다. 그러나 reference개념을 알고 있어야 하기 때문에 값을 가리키는 것, 할당하는 것으로 이해하는 것이 좋습니다. 데이터타입에는 여러가지가 있지만 숫자, 문자열, 불, 시퀀스데이터타입, 딕셔너리, 셋 등이 있습니다. 말 그대로 데이터의 형식, 타입을 의미하는 것이에요. 리스트(list)와 튜플(tuple)의 차이는 변경이 가능한가 아닌가로 나뉩니다. 딕셔너리(dict)와 셋(set)은 똑같이 중괄호{} 를 쓰지만 set은 순서가 없어서 인덱싱이 안된다는 점에서 차이가 있습니다. 그래서 셋은 중복을 제거할 때 많이 사용합니다.

 

조건문(if)은 조건에 따라 프로그램의 흐름을 제어하기 위한 구문입니다. 파이썬에서는 if / elif / else로 표현하죠. elif는 if조건이 아닌 다른 조건을 제어해주는 것입니다. 반복문(for/while)은 특정 반복조건에 따라 코드 블록을 반복실행시키기 위한 구문인데 무한루프에 빠지지 않도록 주의해야합니다. 조건 변형을 잘 시켜주지 않으면 계속 돌아갑니다. 함수는 def로 작성을 합니다. 특정 코드를 재사용할 수 있도록 구성한 코드 형태로 인풋과 아웃풋이 있습니다. 물론 인풋과 아웃풋이 없는 형태도 가능하죠. 인풋 파라미터에 기본값을 정할 수도 있어요. 앞에서 갑자기 default값을 줄 수 없기 때문에 뒤에서만 지정할 수 있습니다.

 

클래스(class)는 연관있는 데이터의 기능을 묶은 객체를 만들기 위한 설계도입니다. 클래스를 통해 생성하며 실체가 된 것이 바로 객체입니다. 클래스 A를 통해 만들어진 객체는 바로 클래스 A의 인스턴스죠. 메서드(method)는 클래스 안에 구현된 함수입니다. 생성자(constructor)는 객체가 생성되는 시점에 한 번 자동으로 호출되는 메서드입니다. (형태는 __int__() 메서드) 이런 내용들은 기본적인 것처럼 보이지만, 기본을 알 때 구상할 수 있는 방향이 달라지기 때문에 매우 중요합니다. 다음으로 모듈을 살펴봅시다. 함수나 변수, 클래스 등을 모아높은 하나의 파이썬 파일인데요, 모듈을 사용하기 위해서는 아래 코드를 따라 갑니다.

import 모듈이름

from 모듈이름 import 모듈 안의 변수

+=은 왜 쓰는걸까? n += 1 은 n = n+1과 의미가 같습니다. 이 방식은 리스트에도 그대로 적용됩니다. append하지 않는 경우에는 +=를 쓸 수 있죠. append는 뒤로 바로 합쳐주는 것이지만 +=를 쓰기 위해서는 [변수이름]을 써줘야합니다. 더 나아가 list comprehension을 이용해 표현하는 것도 알아봅시다.