혼공학습단 시작이 엊그제 같은데 벌써 마지막 주차가 되었습니다!

벌써 1월이 다 지나가 버렸다니🥲

그리고 파이썬 기본서 한 권을 다 봤다니! 뿌듯합니다 ㅎㅎ

배운 건 계속 써먹어 봐야 하니까 코딩테스트 문제도 요즘 파이썬으로 풀어보고 있어요! 😎


Chapter 07. 모듈

[외부 모듈]

 

✏️ 외부 모듈 : 파이썬이 기본적으로 제공하지 않는, 다른 사람들이 만들어 제공하는 모듈

# 설치 방법
pip install <모듈 이름>

 

[기본 미션 : p.431 [직접 해보는 손코딩:BeautifulSoup 스크레이핑 실행하기] 예제 실행 후 결과 화면 캡처하기]

 

✅ 소스 코드

# 모듈을 읽어 들입니다.
from flask import Flask
from urllib import request
from bs4 import BeautifulSoup

# 웹 서버를 생성합니다.
app = Flask(__name__)
@app.route("/")

def hello():
    # urlopen() 함수로 기상청의 전국 날씨를 읽습니다.
    target = request.urlopen("http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108")
    # BeautifulSoup을 사용해 웹 페이지를 분석합니다.
    soup = BeautifulSoup(target, "html.parser")
    
    # location 태그를 찾습니다.
    output = ""
    for location in soup.select("location"):
        # 내부의 city, wf, tmn, tmx 태그를 찾아 출력합니다.
        output += "<h3>{}</h3>".format(location.select_one("city").string)
        output += "날씨: {}<br/>".format(location.select_one("wf").string)
        output += "최저/최고 기온: {}/{}"\
            .format(\
                location.select_one("tmn").string,\
                location.select_one("tmx").string\
                )        
        output += "<hr/>"
 
    return output

 

실행 화면


Chapter 08. 클래스

[클래스의 기본]

 

✏️ 객체 지향 프로그래밍 : 객체를 만들고, 객체들의 상호 작용을 중심으로 개발하는 방법론

✏️ 객체 (object) : 속성을 가질 수 있는 모든 것

# 예시 - 학생 객체
student1 = {"name": "kim", "math": 98, "english": 88, "science":95}
student2 = {"name": "Lee", "math": 92, "english": 81, "science":98}

 

✏️ 클래스 (class) : 객체를 효율적으로 생성하기 위해서 만들어진 구문

class 클래스 이름:
      클래스 내용

 

클래스는 생성자 함수(클래스 이름과 같은 함수) 를 사용해서 객체를 생성한다.

이러한 클래스를 기반으로 만들어 진 객체를 인스턴스 (instance) 라고 한다.

  •  붕어빵 틀과 붕어빵에 비유할 수 있다. 붕어빵 틀(클래스) 을 사용해서 실체화 된 붕어빵들이 바로 인스턴스이다.
# 인스턴스 생성
인스턴스 이름 = 클래스이름() 

 

학생 클래스를 정의한 후, 이를 기반으로 학생 3명을 선언하는 예제

# 클래스 선언
class Student:
    pass

# 학생 선언
student = Student()

# 학생 리스트 선언
students = [
    Student(),
    Student(),
    Student(),
]

 

✏️ 생성자 (constructor) : 클래스 이름과 같은 함수

  • 클래스 내부에 __init__ 라는 함수를 만들어서 객체를 생성할 때 처리할 내용을 작성할 수 있다.
  • 클래스 내부의 함수는 첫 번째 매개변수로 self 를 사용한다.
    • self가 가지고 있는 속성이나 기능에 접근할 때는 self.<식별자> 로 접근한다.
class 클래스 이름:
      def __init__(self, 추가적인 매개변수):
            작성할 코드

 

✏️ 메소드 (method) : 클래스가 가지고 있는 함수

class 클래스 이름:
      def 메소드 이름(self, 추가적인 매개변수):
            작성할 코드
# 클래스 선언
class Student:
    # 객체 생성 시 추가할 속성 정의
    def __init__(self, name, math, english, science):
        self.name = name
        self.math = math
        self.english = english
        self.science = science
    
    # Student 클래스의 메소드 get_sum() 정의
    def get_sum(self):
        return self.math+self.english+self.science
    
    def to_string(self):
        return "{}\t{}\t".format(self.name, self.get_sum())

# 학생 리스트 선언
students = [
    Student("kim", 97, 98, 88),
    Student("lee", 92, 98, 96),
    Student("bae", 76, 96, 94)
]

print("이름", "총점", sep="\t")
for student in students:
    print(student.to_string())
    
이름    총점
kim     283
lee     286
bae     266

 

+ Recent posts