Forensic/혼공파 챌린지

혼공파 마지막 6주차 미션

Ron Weasley 2021. 8. 16. 16:19

진짜 이번주는 너무 바쁘다보니 공부할 시간이 너무 없었습니다. 그래도 기간을 하루 연장시켜 주셔서 감사합니다.

6주차 챕터 미션입니다. 그럼 시작 해보겠습니다.

 

모듈

| 함수나 변수 또는 클래스를 모아 놓은 파일

| 종류로는 표준 모듈과 외부 모듈이 존재

  - 표준 모듈은 파이썬에 기본적으로 내장되어 있는 모듈

  - 외부 모듈은 다른 개발자들이 특수한 목적으로 작성한 모듈

 

  모듈의 기본 구문은 다음과 같습니다.

import 모듈 이름
# 파이썬 코드를 작성할 때 제일 처음에 작성합니다.

일단 파이썬에 기본적으로 내장되어 있는 math 모듈에 대해 배워보겠습니다.

 

math 모듈

  math모듈은 말 그대로 수학(math)이랑 관련된 기능을 가지고 있습니다. 기본 구문을 보면 이렇게 되겠죠

import math

  이렇게 import math라고 입력하면 math라는 모듈을 사용할 수 있습니다. 바로 어떠한 기능을 가지고 있는지 보겠습니다.

math모듈안에 존재하는 삼각함수

sin(사인), tan(탄젠트), cos(코사인)은 수학에서 삼각함수를 뜻하는것이죠?? 괄호안에 (1)은 1의 sin값을 구하라는것입니다.

이걸로 math모듈이 어떤 기능을 하는지는 파악되셨을거라 생각합니다. math모듈에 대해 더 배우고 싶다면 여기를 참고하세요!!! https://docs.python.org/3/library/index.html

 

The Python Standard Library — Python 3.9.6 documentation

The Python Standard Library While The Python Language Reference describes the exact syntax and semantics of the Python language, this library reference manual describes the standard library that is distributed with Python. It also describes some of the opt

docs.python.org

 

from구문

  하지만 모듈에는 엄청난 숫자의 변수, 함수가 존재하는데 매번 코드를 작성할 때 math.sin 이런식으로 math를 자꾸 입력해주기 복잡할 수 있습니다. 이때 편하게 사용하기 위해 from을 사용합니다. 기본 구문은 이렇습니다.

from 모듈 이름 import 가져오고 싶은 변수 또는 함수
# from matn import * # 이 문장은 math 모듈의 모든 기능을 가져오는 것

예외적인 부분이나, 구문 오류가 발생하지 않는것이 보이시나요?? 이렇게 가져온 sin, cos, tan은 앞에 math를 붙히지 않아도 사용이 됩니다. 출력값도 정상적으로 출력이 됩니다.

 

random모듈

  제가 생각하기엔 코딩을 배우는 사람들이 가장 궁금해 하는게 로또번호를 출력하는것을 만들고 싶을텐데..파이썬에서 엄청 쉽게 로또번호를 출력할 수 있게 해주는 모듈이 random모듈입니다. random모듈은 랜덤한 값을 생성할 때 사용하는 모듈입니다. 간단하게 6개의 숫자를 출력하는것만 해보겠습니다.

<해설>

① random 모듈을 import한다.

② lotto 변수에 random모듈의 sample메소드를 사용하여 범위 1 ~ 45의 숫자를 출력할 수 있게 지정하고 6개를 생성한다.

③ sort()함수는 오름차순으로 정렬해준다.

④ 출력한다.

이런식으로 난수 6개가 생성되는것을 보이나요?? 이제 이런식으로 이쁘게 본인만의 로또 생성기를 꾸며봅시다.

 

urllib모듈

  url은 URL(Uniform Resource Locator)를 말하고 web address라고도 부릅니다. 이 기능은 URL을 다루는 라이브러리라는 의미를 가집니다. 쉽게말해서 urllib 모듈을 이용해서 웹 브라우저의 주소창에 입력하는 주소를 가져오는 기능을 수행합니다. 이렇게 말하면 이해가 안될 수 있으니 바로 예제코드를 살펴보겠습니다.

<해설>

① from urllib import request를 통해서 urllib 모듈에 있는 request를 가져왔습니다.

② urlopen은 request 모듈 내부에 있는 함수로써 구글 홈페이지를 접속하기를 원합니다.

③ 입력을 하면 파이썬이 구글 홈페이지를 접속합니다.

이런식으로 막 html을 이용한 코드가 나옵니다. 처음보시는 분들은 문자열 처럼 보이지만 제일 앞에 b가 존재하는데 b는 바이너리 데이터를 의미합니다.

 

이제 표준 모듈에 대해서는 살펴보았으니 외부 모듈을 살펴보겠습니다.

 

  외부 모듈은 파이썬이 기본적으로 제공해 주는 것이 아니라, 다른 사람들이 만들어 배포하는 모듈입니다. 예제로 외부 모듈인 beautifulsoup를 사용해보도록 하겠습니다. 설치를 위해서는 pip를 설치해야 합니다. pip는 파이썬으로 작성된 패키지 소프트웨어를 설치 관리하는 패키지 관리 시스템입니다. 저는 사용자들의 컴퓨터에 pip가 설치되어 있다고 가정하고 바로 본론으로 들어가겠습니다.

 

BeautifulSoup 모듈, Flask 모듈

  BeautifulSoup모듈은 굉장히 유명한 파이썬의 웹 페이지 분석 모듈입니다.

  Flask모듈은 웹 개발을 할 때 사용하는 웹 개발 프레임워크 모듈입니다.

그럼 바로 이 모듈을 이용해서 날씨를 가져와보도록 하겠습니다.

보이시나요? 날씨와 온도가 출력이 됬습니다.

 

하지만 출력값이 중요한게 아닙니다. 이 출력값을 실행하기위해 저처럼 바보같은 짓을 하는 사람들도 있을겁니다. 바로 파일명입니다. 파일명을 제가 flask.py로 했습니다. 근데...저는 바보처럼 flask.py가 모듈인지도 모르고 계속 명령 프롬프트에서 실행했을 때 엄청난 오류와 마주했습니다. 바로 이것입니다.

set FLASK_APP=flask.py
flask run
# 이 명령어를 입력하면 프로그램이 실행이 되는데 저는 자꾸 저 오류가 뜨는겁니다..

그래서 30분넘게 삽질해서 찾아냈습니다. 파일명을 flask.py로 하면 안된다는것을요... 다들 저 처럼 멍청한 행동은 하지 맙시다 ㅎㅎㅎ 방금 위에서 본것이 우리가 하는 기본 미션이구요 선택 미션도 바로 하겠습니다.

 

객체(Object)

- 어떠한 속성값과 행동을 가지고 있는 데이터
ex) 학생 성적관리 프로그램을 만들 때 리스트와 딕셔너리를 통해 만드는데 이렇게 학생들은 여러가지 속성값을 가질 수 있는 대상이여서 객체라고 부릅니다. 즉 이 프로그램에서 객체는 학생입니다.

클래스(Class)

- 객체와 관련된 코드를 분리하여 조금 더 효율적으로 만들기 위한 기능

인스턴스(Instanse)

- 클래스를 기반으로 만들어진 객체

생성자(Constructor)

- 클래스 이름과 같은 함수

메소드(Method)

- 클래스가 가지고 있는 함수

이때까지 6주간 많은 공부도 해보고 많은 오류도 만나보고 좋은 시간이였던거 같습니다. 우수 혼공러가아닌 그냥 프로그래밍 언어를 배운 혼공러로써 더 성장해 나가겠습니다.!!!!

'Forensic > 혼공파 챌린지' 카테고리의 다른 글

혼공파 5주차 미션  (0) 2021.08.07
혼공파 4주차 미션  (0) 2021.07.31
혼공파 3주차 미션  (0) 2021.07.25
혼공파 2주차 미션  (0) 2021.07.17
혼공파 커리큘럼 및 1주차 미션  (1) 2021.07.08