[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2024.07.16
📕 학습 목록
- 이차원 리스트
- 객체지향 프로그래밍
📗 기억할 내용
1) 다중 for문
for a in range(4):
print(f"a가 {a}일 때")
for b in range(4):
print(f"b는 {b}")
a가 0일 때
b는 0
b는 1
b는 2
b는 3
a가 1일 때
b는 0
b는 1
b는 2
b는 3
a가 2일 때
b는 0
b는 1
b는 2
b는 3
a가 3일 때
b는 0
b는 1
b는 2
b는 3
2) 이차원 리스트
- 1차원 직선 형태의 리스트를 벗어난 2차원 평면 형태의 리스트
- 리스트를 원소로 가지는 리스트
- 행렬(Matrix)이라고도 하며, 세로(행, column, y)와 가로(열, index, x) 길이를 가짐
matrix = [
[3, 7, 9],
[4, 2, 6],
[8, 1, 5]
]
print(matrix) # [[3, 7, 9], [4, 2, 6], [8, 1, 5]]
# 인덱싱
print(matrix[0]) # [3, 7, 9]
print(matrix[2]) # [8, 1, 5]
# matrix[행][열]
print(matrix[0][0]) # 1
print(matrix[1][2]) # 9
matrix[0][2] = 0
print(matrix) # [[1, 8, 0], [7, 3, 9], [5, 2, 6]]
matrix = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 0, 1, 2]
]
print(matrix[0][0], matrix[0][1], matrix[0][2], matrix[0][3])
print(matrix[1][0], matrix[1][1], matrix[1][2], matrix[1][3])
print(matrix[2][0], matrix[2][1], matrix[2][2], matrix[2][3])
'''
1 2 3 4
5 6 7 8
9 0 1 2
'''
- 반복문을 활용한 이차원 리스트 순회
# 중첩 반복문을 사용한 이차원 리스트 순회
for i in range(3):
for j in range(4):
print(matrix[i][j], end=' ')
print() # 행의 끝에서 줄바꿈
'''
1 2 3 4
5 6 7 8
9 0 1 2
'''
2) 객체 지향 프로그래밍
- OOP; Object Oriented Programming
- 클래스(Class) : 객체의 설계도. 속성(정보) & 메서드(행동) 로 구성
- 인스턴스(Instance) : 클래스에서 생성된 객체. 클래스를 호출하여 인스턴스 생성
class Person:
# 클래스 변수 : 모든 인스턴스가 공유하는 속성
species = "호모 사피엔스"
# 생성자 메서드 : 인스턴스를 생성할 때 실행되는 함수
# 메서드의 첫 인자는 무조건 self
def __init__(self, name, init_age):
self.name = name
self.age = init_age
self.planet = "Earth"
# 인스턴스 메서드 : 인스턴스가 할 수 있는 행동을 정의하는 함수
# 메서드의 첫 인자는 무조건 self
def introduce(self):
print(f"안녕하세요. 제 이름은 {self.name}이고, 나이는 {self.age}살 입니다.")
# 인스턴스 메서드
def birthday(self):
self.age += 1
# 인스턴스 생성 : 클래스를 통해 인스턴스 생성
person = Person("Gildong", 20)
# 인스턴스 변수(인스턴스.속성) : 각각의 인스턴스가 고유하게 가지는 속성
print(f'내 이름은 {person.name}이 올시다.')
# 인스턴스 메서드(인스턴스.메서드) 호출
person.introduce()
person.birthday()
- 상속(Inheritance) : 상위(부모) 클래스의 속성과 메서드 → 하위(자식) 클래스가 사용
class Person:
def __init__(self, name, init_age):
self.name = name
self.age = init_age
self.planet = "Earth"
def introduce(self):
print(f"안녕하세요. 저의 이름은 {self.name}이고, 나이는 {self.age}살 입니다.")
# 부모 클래스(Person)를 상속받은 하위 클래스(Student)
class Student(Person):
def __init__(self, name, init_age, grade):
super().__init__(name, init_age) # 부모 클래스의 생성자 호출
self.grade = grade # 추가된 속성
def introduce(self):
super().introduce() # 부모 클래스의 introduce 메서드 호출
print(f"저는 {self.grade}학년입니다.")
def promote(self):
self.grade += 1 # 학년을 올리는 메서드
student1 = Student("Gildong", 20, 1)
student1.introduce()
student1.birthday()
print(f"생일 후 나이: {student1.age}살")
student1.promote()
print(f"진급 후 학년: {student1.grade}학년")
📙 내일 일정
- 파이썬 크롤링(HTML, 요청과 응답, HTML 파싱, 웹 브라우저 자동화 도구, 웹 페이지 상호작용,...) 학습
'TIL _Today I Learned > 2024.07' 카테고리의 다른 글
[DAY 6] Python Crawling (0) | 2024.07.18 |
---|---|
[DAY 5] Python Crawling (0) | 2024.07.17 |
[DAY 3] Python Programming (0) | 2024.07.15 |
[DAY 2] Python Programming (0) | 2024.07.14 |
[DAY 1] Python Programming (0) | 2024.07.14 |