whatisthis?

Phython. 파이썬 코딩 기초편-10(下) 본문

WEB STUDY/PHYTHON | BACK-END

Phython. 파이썬 코딩 기초편-10(下)

thisisyjin 2021. 9. 21. 14:52
 

Phython. 파이썬 코딩 기초편-10(上)

동네에 항상 대기손님이 있는 치킨집이 있다. 대기 손님의 요리시간을 줄이고자 자동 주문 시스템을 제작했다. 시스템 코드를 확인하고 적절한 예외처리 구문을 넣으시오. <조건> 1.. 1보다 작거

mywebproject.tistory.com

 


 

6. pip install

 

파이썬에는 수많은 패키지와 모듈이 존재한다. 

기본적으로 제공하는 패키지 뿐만 아니라 다른 사람들이 만든 패키지도 적절하게 사용하는 것이 중요.

 

https://pypi.org/

 

PyPI · The Python Package Index

The Python Package Index (PyPI) is a repository of software for the Python programming language.

pypi.org

다양한 패키지들이 있으므로 찾아보자.

이번 예제에서는 웹 스크래핑에 유용한 beautifulsoup 패키지를 다운받아 보겠다.

 

 

beautifulsoup4 4.10.0

Project description

Beautiful 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.

위 copy 버튼을 눌러서 복사하면 된다.

 

다시 비주얼스튜디오코드로 돌아와서, 터미널에 해당 복사한 코드를 붙여넣고 엔터를 친다.

다음과 같이 패키지가 다운로드 된 것을 알 수 있다.

 

 

 


___

 

위 웹사이트에 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에서 파일 읽고쓰기에서 함꼐 배운 내용이다.

 

 

Phython. 파이썬 코딩 기초편-07

표준 체중을 구하는 프로그램을 작성하시오 *공식 남자 : 키(m) * 키(m) * 22 여자 : 키(m) * 키 (m) * 21 <조건> 1. 표준체중은 별도의 함수 내에서 계산 - 함수명 : std_weight / 전달값 : height, gender 2. 표..

mywebproject.tistory.com

 

+) 해당 모듈(라이브러리)내에서 쓸 수 있는 변수,함수에 대해서 알기 위해서는

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

 

Built-in Functions — Python 3.9.7 documentation

Built-in Functions The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order. abs(x) Return the absolute value of a number. The argument may be an integer, a floating poin

docs.python.org

위 사이트에서 내장함수들을 참고할 수 있다. 해당 함수를 클릭하면 다양한 설명과 예제들도 있다.

 

 

 


 

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("폴더를 생성하였습니다.")

makedirs로 인해 폴더 생성됨

 

예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

 

Python 모듈 목록 — Python 3.9.7 문서

numbers Numeric abstract base classes (Complex, Real, Integral, etc.).

docs.python.org

 

마찬가지로, 위 사이트에서 외장함수 리스트를 참고할 수 있다.

 

 


 

<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 기초를 끝내고 나서
다시한번 더 자세한 파이썬 공부를 해보려고 한다. 강의에서 언급 안된 심화적인 내용과, 그리고 강의에서 나온 것을 이론적인 내용에 대해서도 더 자세히 공부해 볼 것이다.