whatisthis?
Phython. 파이썬 코딩 기초편-10(下) 본문
6. pip install
파이썬에는 수많은 패키지와 모듈이 존재한다.
기본적으로 제공하는 패키지 뿐만 아니라 다른 사람들이 만든 패키지도 적절하게 사용하는 것이 중요.
다양한 패키지들이 있으므로 찾아보자.
이번 예제에서는 웹 스크래핑에 유용한 beautifulsoup 패키지를 다운받아 보겠다.
beautifulsoup4 4.10.0Project descriptionBeautiful Soup is a library that makes it easy to scrape information from web pages.It sits atop an HTML or XML parser, providing Pythonic idioms for iterating, searching, and modifying the parse tree. |
다시 비주얼스튜디오코드로 돌아와서, 터미널에 해당 복사한 코드를 붙여넣고 엔터를 친다.
다음과 같이 패키지가 다운로드 된 것을 알 수 있다.
___
위 웹사이트에 Quick start 부분에 예제가 작성되어있는데,
이를 그대로 복사해서 pracitce.py에서 실행해보면 다음과 같다.
+)
비주얼스튜디오 터미널에
pip list 라고 입력시, 설치되어있는 패지 리스트가 뜬다.
pip show beautifulsoup4 라고 입력시, 해당 패키지에 대한 버전, 홈페이지, 요약 등의 정보가 나온다.
업그레이드를 하려면, pip install --upgrade (패키지명)
패키지 삭제시, pip uninstall (패키지명)
7. 내장함수
= 내장되어있어, import할 필요 없이 바로 사용 가능한 함수.
예> input()함수 : 사용자 입력을 받는 함수
# input 함수 예제
favorite = input("가장 좋아하는 언어는? :")
print("{0}는 아주 좋은 언어입니다.".format(favorite))
예2> dir()함수 : 어떤 객체를 넘겨줬을때 그 객체가 어떤 변수,함수를 가지고 있는지 표시.
# dir 함수 예제
print(dir())
import random # 외장함수
print(dir())
import pickle
print(dir())
각 라이브러리에서 import 한 것에 대한 변수와 함수를 출력해준다.
기본 값인 첫 출력값에서, import random을 하면 random이 추가되고
import pickle 을 하면 pickle이 추가된다.
Pickle프로그램에서 사용하는 데이터를 파일 형태로 저장해주는 것.pickle.dump(변수명, 파일변수명) ** ch07에서 파일 읽고쓰기에서 함꼐 배운 내용이다. |
+) 해당 모듈(라이브러리)내에서 쓸 수 있는 변수,함수에 대해서 알기 위해서는
print(dir(random))
다음과 같이 dir() 안에 모듈명을 적어주면 된다.
lst = [1, 2, 3]
print(dir(lst))
이렇게 하면, lst 변수는 리스트 형태이므로, dir(lst)를 하면 리스트에서 쓸 수 있는 변수,함수가 나온다.
++) 구글에 list of python builtins 로 검색하면, 아래 사이트가 나온다.
**빌트인 함수란, 별도의 설치나 코드 없이 바로 사용 가능한 내장함수를 의미한다.
cf> 자바의 경우엔, 내장 함수가 없어 System.out.print(...) 같은 복잡한 코드를 써줘야하는 번거로움이 있다.
https://docs.python.org/3/library/functions.html
위 사이트에서 내장함수들을 참고할 수 있다. 해당 함수를 클릭하면 다양한 설명과 예제들도 있다.
8. 외장함수
=내장 함수와는 달리 import를 통해 불러와서 사용해야 하는 함수.
예> glob 함수
# glob : 경로 내의 폴더, 파일 목록 조회 (윈도우의 dir과 같음)
import glob
print(glob.glob("*.py")) # 확장자명이 py인 모든 파일 찾기
해당 파일이 존재하는 파일 내에서 py로 끝나는 모든 파일을 찾아 출력.
예2> os 함수
실제 운영체제( OS)와 같은 기능.
디렉터리 위치 표시 or 폴더 생성 등의 다양한 기능 있음.
1. getcwd() : 현재 디렉토리 표시 (예 - C:\Users\USER\Desktop\PythonWorkspace )
2. path.exists(폴더명)
3.. makedirs(폴더명) : 폴더 생성
4. rmdir(폴더명) : 폴더 삭제
5. listdir() : 존재하는 디렉토리 리스트 표시
# os : 운영체제에서 제공하는 기본 기능.
import os
print(os.getcwd()) # 현재 디렉토리 표시.
folder = "sample_dir"
if os.path.exists(folder):
print("이미 존재하는 폴더입니다.")
os.rmdir(folder)
else:
os.makedirs(folder) # 폴더 생성
print("폴더를 생성하였습니다.")
예3> time 함수
# time : 시간 관련 함수
import time
print(time.localtime)
print(time.strftime("%Y-%m-%d %H:%M:%S"))
2021-09-21 15:24:47 |
+) datetime 이라는 함수도 존재함.
import datetime
print("오늘 날짜는", datetime.date.today)
# timedelta : 두 날짜 사이의 간격
today = datetime.date.today() # 오늘 날짜
td = datetime.timedelta(days=100) # 100일 저장
print("100일 후 날짜는", today + td) # 오늘부터 100일 후
___
구글에 list of python modules라고 검색하면
https://docs.python.org/ko/3/py-modindex.html
마찬가지로, 위 사이트에서 외장함수 리스트를 참고할 수 있다.
<Quiz>
프로젝트 내에 나만의 시그니처를 남기는 모듈을 만드시오.
< 조건 >
모듈 파일명은 byme.py 로 작성
< 모듈 사용 예시>
import byme
byme.sign()
< 출력 예시 >
이 프로그램은 나도코딩에 의해 만들어졌습니다. 유튜브 : http://youtube.com 이메일 : nadocoding@gmail.com |
답은 쉬우므로 코드 리뷰는 패스.
def sign():
print("이 프로그램은 나도코딩에 의해 만들어졌습니다.")
print("유튜브 : http://youtube.com")
print("이메일 : nadocoding@gmail.com")
practice.py와 같은 경로에 모듈을 만들어야함!
<Pyhthon 기본편을 마치며>
6시간짜리 파이썬 기본편 강의를 들으면서, 내가 거의 처음 배우는거나 마찬가지인 파이썬에 대한 전반적인 내용을 잘 알 수 있었다. 단기간에 빠르게 끝내고 싶었으나 토익공부와 학교 수업으로 인해 좀 지연된 것이 아쉬웠다.
그리고, 해당 강의는 무료 강의라고 믿을 수 없을 정도로 퀄리티있고, 이해하기 쉬운 강의였으나
조금 아쉬운 점이 있다면 매 시간 출제되는 과제의 경우에 다양한 경우의수를 고려하지 않은 것 같아 아쉬웠다.
예를 들면, 문자열 함수의 경우에 http:// 인 경우와 https://인 경우를 나눠서 생각하지 않았다거나,
그 외에도 나는 일부러 다양한 경우의수를 고려하여 복잡하게 작성한 코드인데 강의에서 나온 정답에는
그러한 것들이 언급되어있지 않아서 아쉬웠다.
다 떠나서, 파이썬에 대해 좋은 강의를 통해 잘 알게 되어서 뿌듯하고, 추후에 html,css와 js 기초를 끝내고 나서
다시한번 더 자세한 파이썬 공부를 해보려고 한다. 강의에서 언급 안된 심화적인 내용과, 그리고 강의에서 나온 것을 이론적인 내용에 대해서도 더 자세히 공부해 볼 것이다.
'WEB STUDY > PHYTHON | BACK-END' 카테고리의 다른 글
Node. Node Js + NPM 이란? (0) | 2022.02.18 |
---|---|
JAVA. 혼자 공부하는 자바 Day 01 (0) | 2021.09.23 |
Phython. 파이썬 코딩 기초편-10(上) (0) | 2021.09.20 |
Phython. 파이썬 코딩 기초편-09 (2) | 2021.09.20 |
Phython. 파이썬 코딩 기초편-08(下) (4) | 2021.09.18 |