2주차 수업
2주차부터는 파이썬 기본 문법에 대한 강의가 진행된다. 1주차 수업에는 간단한 오리엔테이션만 진행했기 때문에 가볍게 들을 수 있었지만 2주차부터는 강의량이 상당히 늘어 처음 파이썬을 접하는 사람들한테는 부담이 될 것 같다는 생각이 들었다. 아무래도 5주 과정으로 파이썬 사용방법부터 데이터 분석까지 마쳐야 하기 때문에 어쩔 수 없다고 생각한다.
먼저 파이썬에서의 데이터 타입을 공부하고, 이후 데이터 타입을 활용하여 조건문, 반복문, 함수, 입출력 문까지 파이썬에서 가장 기본적으로 알아야 하는 개념들을 공부한다. 파이썬은 기본적으로 사용자에게 굉장히 친절한 언어이다. C나 C++ 같은 언어는 속도는 빠르지만 초심자가 사용하기에는 이해도가 상당히 요구된다. 반면에 파이썬은 간단한 프로그램 정도는 몇 줄 채 되지 않는 코드로도 구성할 수 있다. 그렇기에 파이썬이 처음 프로그래밍을 배우는 사람들에게 필수 교양처럼 여겨지는 것이다.
이번 강의에서 중요하다고 생각한 문법은 list comprehesion이었다. 알고리즘 문제를 풀 때도 많이 사용하는 문법이라서 코딩테스를 위해서는 꼭 외워두는 것이 좋다고 생각한다. 코드는 다음과 같다.
L = [x for x in range(1, 10) if x % 2 != 0]
print(L)
[1, 3, 5, 7, 9]
[ ] 라는 리스트 안에 x라는 원소가 추가되는 형태이다. x 뒤의 for 문을 통해 x에 수가 대입되며, if 조건문을 통해 x가 대입될지 말지를 결정할 수도 있다. 위 경우는 x를 2로 나눈 나머지가 0이 아닌 경우에만 for문이 실행되어 x에 숫자가 대입된다.
수업 중 발견한 오류
수업을 진행하다가 파일 I/O 파트에서 오류가 발생했다.
output_ = []
with open("data/test.txt", 'r') as f:
for line in f:
line = line.strip() # strip을 쓰면 띄어쓰기를 모두 무시함
output_.append(line)
print(output_)
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_4312/823719772.py in <module>
1 output_ = []
2 with open("data/test.txt", 'r') as f:
----> 3 for line in f:
4 line = line.strip() # strip을 쓰면 띄어쓰기를 모두 무시함
UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 0: illegal multibyte sequence
txt 파일을 불러와서 읽어야 하는데 'cp949' codec 오류가 발생했다. 구글링해서 검색해본 결과 text 파일의 encoding 설정과 python의 encoding 설정이 맞지 않는 경우 이러한 오류가 발생한다는 것을 알았다. 한글로 된 text 파일을 읽을 때 종종 일어나는 오류라고 한다. 이때는 'r' 뒤에 encoding='UTF8' 을 추가하면 오류가 해결된다.
output_ = []
with open("data/test.txt", 'r', encoding='UTF8') as f:
for line in f:
line = line.strip() # strip을 쓰면 띄어쓰기를 모두 무시함
output_.append(line)
print(output_)
['아이구', '아이쿠', '아이고', '우리', '저희', '따라', '의해', '으로', '에게', '뿐이다', '의거하여', '근거하여', '입각하여', '기준으로', '예하면', '예를 들면', '예를 들자면']
2주차 후기
2주차 빅데이터 수업 동안 파이썬 기본 문법을 복습할 수 있는 기회가 생겨서 좋았다. 3주차에서는 파이썬의 numpy, pandas 라이브러리를 배운다. numpy와 pandas 라이브러리는 깊게 공부한 적이 없기 때문에 3주차 수업에서 기본적인 사용법을 제대로 배우고 4주차 수업으로 넘어가야겠다.