혼공학습단 시작이 엊그제 같은데 벌써 마지막 주차가 되었습니다!
벌써 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
'개발 > 혼공학습단_11기' 카테고리의 다른 글
[혼공파] 혼공학습단 11기 회고 (0) | 2024.02.17 |
---|---|
[혼공파] 혼자 공부하는 파이썬_5주차 (0) | 2024.02.04 |
[혼공파] 혼자 공부하는 파이썬_4주차 (0) | 2024.01.28 |
[혼공파] 혼자 공부하는 파이썬_3주차 (1) | 2024.01.21 |
[혼공파] 혼자 공부하는 파이썬_2주차 (2) (0) | 2024.01.13 |