728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

Day 22~24: 데이터 구조 기초 (1)

학습 목표

3일 동안 기본적인 데이터 구조를 배우고, 이를 활용해 스택을 사용한 괄호 유효성 검사 프로그램을 작성.

 

Day 22: Stack과 Queue

1. Stack

  • LIFO(Last In, First Out): 마지막에 추가된 요소가 가장 먼저 제거.
  • 주요 연산:
    • push: 요소 추가.
    • pop: 요소 제거.
    • peek: 가장 위에 있는 요소 확인.
    • is_empty: 스택이 비어있는지 확인.

Python에서 Stack

스택은 주로 Python의 list를 사용해 구현

2. Queue

  • FIFO(First In, First Out): 처음 추가된 요소가 가장 먼저 제거.
  • 주요 연산:
    • enqueue: 요소 추가.
    • dequeue: 요소 제거.

Python에서 Queue

collections.deque를 사용하면 효율적인 큐 구현이 가능.

 

실습

스택과 큐를 직접 구현

 

1. 스택 구현

 

2. 큐 구현

 

이제 느낌이 좀 달라질 것이다. 

아직 멀었지만 학습은 어느 정도 하였고 내 목표에 필요한 프로그램들을 만들기 시작할 것이다.

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

  • Day 20~21: 프로젝트: 도서 관리 프로그램 (2)
    • 클래스와 파일 입출력을 활용해 도서 목록을 추가, 삭제, 조회할 수 있는 간단한 프로그램 작성.

Day 21: 고급 기능 추가 및 파일 입출력 구현

목표

  1. 파일 입출력 기능 추가.
  2. 도서 삭제 기능 구현.
  3. 프로그램 완성 및 테스트.

구현 단계

1. 파일 입출력 추가

  • 도서 데이터를 파일에 저장하고, 프로그램 실행 시 불러오기.

 

최종 프로그램까지 만들었다.

 

하지만 뭔가 이상하다.

 

과제와의 출력결과가 다르다.... 뭐지 일단 뭐가 부족한지 체크하고 다시 해보았다.

 

 

중간중간 빠진 코드가 몇 개 있었다.

 

그리고 입력 프로그램까지 만들었다. 어휴 힘들어

 

 

그래 완벽하게 완료 하였다.

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

열심히 복습을 하자.

 

어제 내용이 길긴 했다.

 

Day 20~21: 프로젝트: 도서 관리 프로그램 (1)

  • 클래스와 파일 입출력을 활용해 도서 목록을 추가, 삭제, 조회할 수 있는 간단한 프로그램 작성.

 

지금까지 배운 것들을 바탕으로 이틀 동안 만들어보겠다.

Day 20: 프로그램 기본 구조와 기본 기능 구현

목표

  1. 프로그램 구조 설계.
  2. 도서 관리 클래스 작성.
  3. 기본 기능 (도서 추가, 조회) 구현.

구현 단계

1. 프로그램 설계

  • 클래스: Book
    • 속성: 제목, 저자.
  • 클래스: BookManager
    • 속성: 도서 목록 (리스트).
    • 메서드:
      • add_book: 도서를 추가.
      • view_books: 모든 도서 조회.

기본 클래스는 열심히 해보자

 

우선 이렇게 만들었다.

 

 

기본 기능 테스트까지 만들었다.

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

오늘도 복습!!

 

우선 프로그램을 만들었다.

 

어제보다 좀 더 넓게 설정해 보았다.

 

Day 19: 캡슐화와 접근 제한자

  • private , protected 속성.
  • getter와 setter 메서드.
  • 실습:
    • 은행 계좌 클래스에 비밀번호 인증 기능 추가.

1. 캡슐화란?

캡슐화의 개념

  • 객체의 내부 상태를 숨기고, 외부에서 직접 접근하지 못하도록 보호하는 것.
  • 데이터 무결성을 유지하고, 필요한 경우 gettersetter를 통해 간접적으로 접근.

2. 접근 제한자

Python의 접근 제한자

  1. Public (public):
    • 기본 상태. 모든 외부 코드에서 접근 가능.
    • 변수 이름: variable
  2. Protected (protected):
    • 클래스 내부와 자식 클래스에서 접근 가능.
    • 변수 이름: _variable (관례적으로 사용)
  3. Private (private):
    • 클래스 내부에서만 접근 가능.
    • 변수 이름: __variable (언더스코어 두 개)

3. Getter와 Setter

왜 필요한가?

  • 객체의 속성을 외부에서 읽거나 수정할 때, 특정 조건을 검증하거나 로직을 추가하고 싶을 때 사용.

 

실습을 하면서 손에 익혀보자

 

 

보기만 해도 머리가 지끈해진다.

 

열심히 해보았다. 사실 몇 번 틀렸다....

 

결과도 보기 어렵네... 그래도 잘 나온 것 같다.

 

오늘은 추가 실습은 없다. 

 

오늘은 20000

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

복습 복습

 

 

이번엔 차 4대를 전부 시동을 걸고 끝냈다. 이 세상에선 차 4대 있다. 허허

 

Day 18: 메서드 오버라이딩

  • 부모 클래스 메서드를 자식 클래스에서 재정의.
  • 실습:
    • 부모 클래스와 자식 클래스 간 메서드 동작 확인.

1. 메서드 오버라이딩의 개념

메서드 오버라이딩이란?

  • 부모 클래스에 정의된 메서드를 자식 클래스에서 동일한 이름으로 재정의하는 것.
  • 다형성을 구현할 수 있습니다. 즉, 동일한 이름의 메서드가 클래스에 따라 다른 동작을 수행.

 

간단한 예제를 하며 익혀보자

 

이정돈 이젠 쉽다. 사실 예전부터 쉽긴 했다.

 

어제랑 비교하면 간단한 프로그램이다.

 

멍멍!, 야옹!

 

오늘의 실습 과제이다.

 

 

 

일단 프로그램을 만들어 보았다. 원 계산이 살짝 어려웠지만 할 수 있었다.

 

어렵지 않지.

 

오늘은 추가 실습은 없다. 

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

복습하고 오늘 학습을 시작하자.

 

복습은 이미 해봤기 때문에 너무 쉽다.

 

Day 17: 상속

  • 상속의 개념.
  • 부모 클래스와 자식 클래스.
  • 실습:
    • 기본 자동차 클래스를 작성하고, 이를 상속받아 전기자동차 클래스를 구현.

상속의 개념

상속이란?

  • 부모 클래스(기본 클래스)의 속성과 메서드를 자식 클래스(파생 클래스)가 물려받는 개념.
  • 코드 재사용성을 높이고 클래스 간 계층 구조를 형성할 수 있음.

 

오늘의 과제

 

먼저 프로그램을 만들어 보자

 

 

그냥 자동차와 전기 자동차를 나눠서 만들었다.

 

결과는 깔끔하게 잘 나왔다.

 

코드 설명

  1. super() 사용:
    • 자식 클래스에서 부모 클래스의 __init__ 메서드를 호출.
    • super().__init__(brand, model, "전기")를 통해 부모 클래스의 속성을 초기화.
  2. 메서드 상속:
    • start와 stop은 부모 클래스에서 정의된 메서드이며, 자식 클래스에서 그대로 사용할 수 있음.
  3. 자식 클래스 확장:
    • 자식 클래스인 ElectricCar에 charge 메서드를 추가하여 전기차의 충전 기능을 구현.

추가적인 실습을 진행해 보자.

 

1. 디젤 자동차 클래스 추가

 

현대와 테슬라를 넣었으니 국산차 하나를 더 넣어 보자

 

기아 쏘렌토를 넣었고 간단하게 과제를 해결하였다.

 

2. 다형성 활용

 

역시 전기차는 조용해야 한다..

지금 내가 타고 있는 차는 조금 시끄럽다. ㅎㅎ

 

이제 조용한 차를 타기 위해 열심히 살아야겠다.

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

복습하고 시작하자!!

 

둘의 점수는 어제와는 다르게 넣어보았다.

 

Day 16: 생성자와 소멸자

  • __init__ 메서드로 초기화.
  • __del__ 메서드.
  • 실습:
    • 은행 계좌 클래스를 작성하고 입금, 출금을 구현.

생성자와 소멸자 개념

생성자 (__init__)

  • 객체가 생성될 때 자동으로 호출되는 초기화 메서드.
  • 객체의 속성을 초기화하는 데 사용됩니다.

소멸자 (__del__)

  • 객체가 삭제될 때 자동으로 호출되는 메서드.
  • 자원을 해제하거나 종료 메시지를 출력하는 데 사용할 수 있음.

어제와 비슷한 느낌이다. 

과제를 하면서 몸으로 익혀보자.

 

이걸 목표로 프로그램을 만들어 보자

 

우선 이렇게 프로그램을 만들어 보았다.

 

깔끔하게 나온 모습을 볼 수 있다.

 

코드 설명

1. 생성자 (__init__):

 

  • 계좌 소유자의 이름과 초기 잔액을 설정.
  • balance에 기본값 0을 설정해 초기 잔액을 입력하지 않아도 객체를 생성 가능.

2. 입금 메서드 (deposit):

  • 입금 금액이 0보다 크면 계좌 잔액을 증가.
  • 잘못된 금액이 입력되면 경고 메시지를 출력.

3. 출금 메서드 (withdraw):

  • 출금 금액이 잔액보다 많으면 출금을 막고 경고 메시지를 출력.

4. 소멸자 ( __del__ ):

  • 객체가 삭제될 때 호출되며 계좌 삭제 메시지를 출력.

추가 실습을 해보자.

 

계좌 이체 기능 추가 : 다른 계좌로 이체 기능을 추가 프로그램 작성.

 

위 프로그램에 이체 기능만 추가해서 프로그램을 만들었다.

 

길동이는 이제 돈이 부족해서 영희에게 돈을 갚을 수 없다......

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

Day 15: 클래스와 객체

  • 클래스 정의와 객체 생성.
  • 클래스 속성, 메서드.
  • 실습:
    • 학생 정보를 저장하는 클래스를 작성하고 이름과 점수를 출력.

클래스와 객체 개념

클래스

클래스는 객체를 생성하기 위한 설계도입니다. 속성(데이터)과 메서드(기능)를 정의.
예: 학생 클래스는 이름과 점수 같은 속성을 포함할 수 있음.

객체

객체는 클래스를 기반으로 생성된 실제 사용 가능한 인스턴스. 클래스는 설계도, 객체는 실체.

 

 

기본 문법이다.

 

오늘의 과제는 학생 정보를 저장하는 클래스 작성하는 것이다.

 

간단해 보인다. 오늘 배운 클래스와 객체를 이용하여 과제가 출력되는 프로그램을 만들어 보자.

 

간단하게 작성할 수 있었다.

 

결과도 깔끔하게 나왔다.

 

코드 설명

 

__init__ 메서드:

  • 생성자 역할을 합니다.
  • 객체를 생성할 때 이름과 점수를 받아 self.name과 self.score에 저장합니다.

 

display_info 메서드:

  • 학생 정보를 출력하는 메서드입니다.
  1.  


객체 생성
:

  • Student 클래스를 기반으로 각각 다른 데이터를 가진 객체를 생성합니다.

 

 

추가 실습을 진행하겠다.

 

1. 평균 점수 계산 메서드 추가

 

학생을 한 명 더 추가하였고 간단하게 해결하였다.

 

2. 점수 등급 계산 메서드 추가

 

내 수준에서는 살짝 복잡했지만 열심히 해보았다.

 

 

결과는 잘 나왔다. ㅎㅎ

오늘은 이만 

 

읽어주셔서 감사하다.

 
반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

Day 13~14: 복습 및 실습

  • 지금까지 배운 모든 내용을 복습.
  • 작은 프로젝트:
    • 사용자가 입력한 숫자 리스트를 저장하고, 평균과 최댓값, 최솟값을 출력하는 프로그램 작성.

어제는 그동안 학습했던 내용을 복습하는 시간을 가졌다.

오늘은 복습한 내용을 가지고 추가적인 실습을 하겠다.

 

확장 실습

결과를 파일에 저장

결과를 파일로 저장하도록 프로그램을 확장.

 

어제 만든 프로그램에 저장 기능을 추가해 보자.

 

 

일단 이렇게 프로그램을 만들었다.

 

 

결과를 저장하는 기능이 들어갔고 출력까지 잘 되었다.

 

추가로 숫자를 오름차순, 내림차순으로 정렬해주는 기능을 추가해 보겠다.

 

 

윗 프로그램에 몇 가지 명령어를 넣어서 기능을 추가해 보았다.

 

 

생각만큼 잘되었다.

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

Day 13~14: 복습 및 실습

  • 지금까지 배운 모든 내용을 복습.
  • 작은 프로젝트:
    • 사용자가 입력한 숫자 리스트를 저장하고, 평균과 최댓값, 최솟값을 출력하는 프로그램 작성.

오늘과 내일은 복습 및 실습 을 실시 하겠다.

오늘은 지금까지 배운 것들을 복습할 것이다.

 

 

프로그램 구조

기능

  1. 사용자로부터 숫자를 입력받아 리스트에 저장.
  2. 입력이 끝난 후:
    • 리스트의 평균 계산.
    • 리스트의 최대값, 최솟값 출력.
  3. 예외 처리:
    • 숫자가 아닌 값 입력 시 오류 메시지 출력.
    • 비어 있는 리스트에 대한 처리.

지금까지 배운것들을 이영하여 프로그램을 만들어 보겠다.

 

 

목표는 이렇게 진행할 것이다.

먼저 이렇게 프로그램을 만들었다.

 

코드 설명

  1. 숫자 입력받기:
    • 사용자가 "done"을 입력하면 입력 루프를 종료.
    • 입력받은 값을 float으로 변환해 리스트에 저장.
  2. 코드 : user_input = input("숫자 입력: ") if user_input.lower() == "done": break
  3. 예외 처리:
    • 숫자가 아닌 값을 입력한 경우 예외를 처리하고, 프로그램이 종료되지 않도록 함.
  4. 코드 : except ValueError: print("유효하지 않은 입력입니다. 숫자를 입력해주세요.")
  5. 결과 계산 및 출력:
    • sum(numbers) / len(numbers): 평균 계산.
    • max(numbers): 최댓값 계산.
    • min(numbers): 최소값 계산.
  6. 빈 리스트 처리:
    • 입력이 없는 경우 사용자에게 메시지를 출력하고 프로그램을 종료.
  7. 코드 : if not numbers: print("입력된 숫자가 없습니다. 프로그램을 종료합니다.") return

 

그 후에 원래 넣고 싶었던 숫자들을 넣으면 원하는 분석 결과가 나온다.

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형

+ Recent posts