패스트캠퍼스 대학생 서포터즈 프로그래밍 첫걸음 11번째 학습 후기다.
이제 올인원패키지 프로그래밍 첫걸음 마지막 파트인 파이썬 진도에 들어갔다.
올인원패키지 프로그래밍첫걸음 파이썬 파트에서 실무에 자주 쓰이는 라이브러리를
먼저 소개하고 설치해보는 실습을 하는 점이 다른 파이썬 강의와 차별점이다.
아직 프로그래밍 첫걸음 파이썬 파트에서 몇 강의 안 들었지만
앞서 프로그래밍 기본 문법들을 실습했기 때문에 불필요한 부분을 바로 건너뛰었다.
그래서 생각보다 파이썬 프로그래밍 진도가 빨랐다.
실무에서 다루는 핵심 내용만 집중적으로 다루기 때문에
시간 낭비 없이 강의에 집중할 수 있었다.
빠르게 파이썬으로 웹 크롤러까지 만들기 위해 여러가지 라이브러리들도 다루는 내용이 들어가서
초반에 앞서 배운 기초 문법 부분들은 빠르게 나가는 듯하다.
9주차에 배운 주제들은 다음과 같다.
9주차 진도에서는
- 02. 파이썬 기초
- 과제1. pip로 각종 라이브러리 설치
- 03. 파이썬 객체 이해&클래스 선언
- 과제2. 사용자 정의 클래스 선언하기
- 04. 모듈과 패키지
- 과제3. 모듈 만들고 import 해보기
- 05. 컬렉션
- 과제4. 리스트 딕셔너리 사용하기
02. 파이썬 기초
Mac OS X 환경에서는 python2 버전이 기본적으로 깔려 있다.
강의에서 소개하는 python 명령어는 python2 버전에 해당된다.
따라서 이를 구분하기 위해 python3 명령어로 python 3 버전 이라는 것을 명시해야한다.
그에 따라서 패키지 매니저 pip 또한 pip3 명령어로 구분해야 한다.
[ QUIZ ]
1. 파이썬은 '인터프리터' 언어이다.
2. 'PIP'을(를) 통해 파이썬 패키지를 관리할 수 있다.
3. 'VirtualEnv'을(를) 통해 프로젝트마다 독립적인 관리를 할 수 있다.
과제1. pip로 각종 라이브러리 설치
만약 다른 프로젝트로 가서 가상 환경을 실행할 경우에는
이미 실행 중인 가상환경을 비활성화 시켜야 한다.
deactivate 명령어로 실행 중인 가상환경을 비활성화시킬 수 있다.
파이썬에서 변수를 생성할 때 아무런 키워드를 넣지 않는다. 그리고 자바스크립트와 마찬가지로 변수에 할당하는 값에 따라 해당 변수의 타입이 결정된다. (타입 추론 기능)
연산자는 자바스크립트와 대체로 비슷하다.
자바스크립트에서 썼던 ||, && 는 or, and 키워드로 대체된다.
그리고 멤버쉽 연산자가 따로 존재한다.
in, not in 이 그 예다. 컬렉션에 해당 값이 있는지 확인할 때 쓴다.
그 다음은 조건문이다.
자바스크립트에서는 if 문과 switch 문이 있지만
파이썬에서는 if 문만 있고 switch 문은 없다.
자바스크립트에서의 else if 구문은 파이썬의 elif 구문으로 대체된다.
그리고 코드 블록은 앞서 설명했던 대로 콜론(:)으로 하는 것을 확인할 수 있다.
pass 키워드를 지원하는데, 특정 조건을 만났을 때 아무것도 실행하지 않고 조건문을 빠져나온다는 의미다.
아래 예제 코드에서 위에서 봤던 in, not in 멤버쉽 연산자를 사용하는 것을 볼 수 있다.
코드가 직관적이라 in 과 not in 이 무엇을 의미하는지 알 수 있다.
in 키워드는 배열에 값이 있으면 true 이고 값이 없다면 false 가 나온다,
1 2 3 4 5 6 | from bs4 import BeautifulSoup from openpyxl import load_workbook from konlpy.tag import Okt import requests print("안녕하세요.") | cs |
03. 파이썬 객체 이해&클래스 선언
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Cat(): species = "russian blue" def __init__(self, name): self.name = name cat1 = Cat("냥1") cat2 = Cat("냥2") print(cat1.species) print(cat2.species) print(cat1.name) print(cat2.name) // russian blue // russian blue // 냥1 // 냥2 | cs |
과제2. 사용자 정의 클래스 선언하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class User(): species = "영장류" def __init__ (self, name, gender, city): self.name = name self.gender = gender self.city = city def get_user_info(self): return "이름은: " + self.name + "\n성별: " + self.gender + "\n사는 곳: " + self.city; def get_species(cls): return "사람은 모두 " + cls.species + "입니다." user = User("문성재", "남성", "수원") print(user.get_user_info()) print(user.get_species()) ''' 코드 실행 결과 이름은: 문성재 성별: 남성 사는 곳: 수원 사람은 모두 영장류입니다. ''' | cs |
04. 모듈과 패키지
1 2 | def sum(x, y): return x + y | cs |
1 2 3 4 5 6 7 8 | import sub print(sub.sum(1, 1)) from sub import sum print(sum(1, 1)) from sub import sum as s print(s(1, 1)) | cs |
package 디렉토리를 생성하고 그 안에 pck.py 파일을 만들었다.
그 pck.py 모듈에는 앞서 만든 sum 함수가 있다.
이제 main.py 파일에서 패키지에 있는 모듈을 가져와보자.
1 2 3 4 5 | from package import pck print(pck.sum(1, 2)) from package import pck as p print(p.sum(1, 2)) | cs |
과제3. 모듈 만들고 import 해보기
user.py 는 이전에 작성한 User 클래스다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ''' 작성 부분 ''' from package.sub.user import User user = User("홍길동", "남성", "대한민국") print(user.get_user_info()) print(user.get_species()) ''' 코드 실행 결과 이름은: 홍길동 성별: 남성 사는 곳: 대한민국 사람은 모두 영장류입니다. ''' | cs |
상단에 User 클래스를 불러오는 코드를 작성했다.
package.sub.user 모듈에서 User 객체를 가져왔다.
만약에 from package.sub import user
로 불러왔다면 User 객체를 가져온 것이 아니라 user.py 모듈을 가져온 것이다.
이 때 User 클래스를 사용하려면 user.User(...) 으로 사용해야 한다.
그러나 원본은 그렇지 않았으므로 객체 자체를 가져왔다.
05. 컬렉션
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # 리스트 생성 num_list = [1, 2, 3, 4, 5] # 인덱스 0부터 시작 print(num_list[0], num_list[-1]) for i in num_list: print(i) # 슬라이싱 (범위) 시작:끝-1 print(num_list[0:3]) print(num_list[1:]) # 리스트 끝에 값 추가 num_list.append(6) num_list.append(7) # 리스트 삭제 # del num_list[-1] del num_list[len(num_list) - 1] # 맨 마지막 삭제 # 리스트 인덱스 접근 num_list[0] = 0 print(num_list) | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # 키와 값으로 이루어진 딕셔너리 만들기 num_dict = {"m": "Moon", "s": "Seong"} # 딕셔너리 키로 값 가져오기 print(num_dict["m"]) # keys(), values() for key, val in num_dict.items(): print(key, val) # 키의 존재 유무 확인. 없으면 추가, 있으면 수정 num_dict["j"] = "Jae" # 딕셔너리 삭제 del num_dict["m"] # 키로 값 가져오기 print(num_dict.get("k")) # 입력받은 키가 딕셔너리에 없다면 None 반환 | cs |
과제4. 리스트 딕셔너리 사용하기
삽입 정렬 실습 코드는 다음과 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | num_list = [1, 5, 4, 3, 2] print("[Before]") for i in num_list: print(i, end= ' ') # 1, 5, 4, 4, 5 print() for i in range(1, len(num_list)): j = i-1 # 삽입할 요소보다 앞의 인덱스 key = num_list[i] # 삽입할 값 while num_list[j] > key and j >= 0: # 반복문 조건 비교 num_list[j+1], j = num_list[j], j-1 # 값을 대입 num_list[j+1] = key # 요소 삽입 print("[After]") for i in num_list: print(i, end= ' ') # 1, 2, 3, 4, 5 | cs |
요즘 유행한다는 파이썬을 실습해봤다.
파이썬은 문법이 간단하다는 장점이었는데
직접 실습해보니 문법이 굉장히 간결한 편이라는 것을 체감했다.
어서 다양한 라이브러리들을 실습해보고 싶다.
'자유 > 대외 활동' 카테고리의 다른 글
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #13.11주차 학습후기, 파이썬 웹크롤러 만들기 (0) | 2019.05.27 |
---|---|
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #12.10주차 학습후기, 파이썬 프로그래밍 (0) | 2019.05.27 |
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #10.8주차 학습후기, 자바스크립트 완전 정복! (0) | 2019.05.09 |
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #9.7주차 학습후기, 자바스크립트 정복하기! (0) | 2019.05.06 |
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #8.6주차 학습후기, 학습진도 50% 달성! (0) | 2019.05.05 |
댓글