본문 바로가기
TIL _Today I Learned/2024.07

[DAY 4] Python Programming

by gamdong2 2024. 7. 16.
[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 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