본문 바로가기
[챌린지]/[패스트캠퍼스] 파이썬 초격차

패스트캠퍼스 환급챌린지 30일차 미션 (3월 1일) : 파이썬으로 할 수 있는 모든 것 with 47개 프로젝트 초격차 패키지 수강 후기

by 쿠키토끼 2024. 3. 1.

01. 제목

패스트캠퍼스 환급챌린지 30일차 미션 (3월 1일) : 
파이썬으로 할 수 있는 모든 것 with 47개 프로젝트 초격차 패키지 Online 수강 후기
 

02. 포스팅 본문 (학습 일기) 가이드

 
1. 학습 인증샷 2장 이상 포함

카메라로 직접 촬영한 수강 인증 사진 (캡쳐X)

 

 

2. 학습 후기 700자 이상 (공백 제외)

오늘은 프로젝트 FASTCAMPUS BLOG 게시글 로딩,하기, FASTCAMPUS BLOG 메뉴출력하고 글쓰기까지 배웠다.

게시글 로딩하기는 먼저 data.csv 파일이 있으면 게시글을 로딩 한다. data.csv 파일이 없으면 data.csv 파일을 만든다. if 문으로 만들어준다. 이 로직은 제일 먼저 data.csv 파일을 읽는다. 그 다음에 데이터 한 줄 마다 Post 인스턴스를 만든다. 다음 Post 리스트에 인스턴스를 저장한다. 

예를 들어 

1, 파이썬 공부 2일차, 연산 배웠다, 2

2, 파이썬 공부 3일차, 조건문 배웠다, 0

이 data.csv 파일에 한 줄 마다 글번호, 제목, 글내용, 조회수를 인스턴스 변수에 인자로 넘겨주면 인스턴스를 생성하게 되고 인스턴스를 관리하는 Post 리스트를 만들어주게 된다. 즉 리스트에 Post 인스턴스들을 담아주는 것이다.

해당 관련은 아래 실습 구현으로 해놓았다. 실습시에 이전에 복습했던 부분에 대해서 언급하고 넘어가시는데 모를 경우 친절하게 해당 강의를 다시 복습하면 된다고 알려주셔서 좋았다. 그때는 이해하고 넘어간게 이렇게 실습으로 응용하니 좀 어렵고 생소해서 복습은 반드시 해야할 듯 하다.

 

다음은 메뉴를 출력하기 구현이다.

- FASTCAMPUS BLOG - 

- 메뉴를 선택해 주세요 - 

1. 게시글 쓰기

2. 게시글 목록

3. 프로그램 종료

>>>1

이렇게 콘솔에 번호를 선택하면 각 각의 기능이 수행된다. 현재는 기능 수행 구현부분이 아니고 메뉴를 출력해주기만 하면 되는 부분이다. 단, 4나 5같은 해당 선택번호에서 1,2,3이 아닌 숫자를 입력했을 때는 다시 메뉴를 출력해주도록 하고, a와 b 같은 문자를 입력받았을 때는 예외를 처리해주어야 한다. 즉 문자를 입력받았을때 오류가 나면서 프로그램이 끝나지 않도록 해야한다.(실습문제 5.3.2 와 비슷한 문제로 복습시 참고/ while True: 무한반복 break 이용)

 

게시글 쓰기 결과화면은 

- 게시글 쓰기 -

제목을 입력해 주세요 >>>

파이썬 공부 1일차

본문을 입력해 주세요 >>>

자료형 변수 배웠다

# 게시글이 등록되었습니다.

 

해당 결과화면 구현은 게시글 등록시

1. Post 인스턴스 생성

2. Post 리스트에 저장

 

Post 인스턴스 

1. 글번호

2. 제목

3. 내용

4. 조회수

 

마지막 글번호는 현재 post_list의([post, post, ...., post]) 마지막 요소의 id값+1 로 해준다

 

아래는 실습 구현을 따라하고 강사님 설명 부분이다.

 

[main]

import os
import csv
from post import Post

# 파일경로
file_path = "./Chapter12/data.csv"

# post 객체를 저장할 리스트
post_list = []

# data.csv 파일이 있다면
if os.path.exists(file_path):
    #게시글 로딩
    print("게시글 로딩중...")
    f = open(file_path, "r", encoding="utf8")
    reader = csv.reader(f)
    for data in reader:
        # Post 인스턴스 생성하기
        post = Post(int(data[0]), data[1], data[2], int(data[3]))
        post_list.append(post)
       
else: # 파일이 없다면
    #파일 생성하기
    f = open(file_path, "w", encoding="utf8", newline="") # 없으면 open 자동 생성
    f.close()

print(post_list[0].get_title()) # post_list에 저장된 첫번째 객체에 대해서 get_title 메서드를 호출하라

#게시글 쓰기
def write_post():
    """게시글 쓰기 함수"""
    print("\n\n- 게시글 쓰기 -")
    title = input("제목을 입력해 주세요\n>>>")
    content = input("내용을 입력해 주세요\n>>>")
    # 글번호
    id = post_list[-1].get_id() + 1
    post = Post(id, title, content, 0)
    post_list.append(post)
    print("# 게시글이 등록되었습니다")

# 게시글 목록
def list_post():
    """게시글 목록 함수"""
    print(post_list)

# 메뉴 출력하기
while True:
    print("\n\n- FASTCAMPUS BLOG -")
    print("- 메뉴를 선택해 주세요 -")
    print("1. 게시글 쓰기")
    print("2. 게시글 목록")
    print("3. 프로그램 종료")
    try:
        choice = int(input(">>>"))
    except ValueError:
        print("숫자를 입력해 주세요")
    else:
        if choice == 1:
            write_post()
        elif choice == 2:
            list_post()
        elif choice == 3:
            print("프로그램 종료")
            break

 

 

03. 필수 본문 내용 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
 

04. 필수 해시태그 

#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
 

05. 필수 URL 

https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

[수강 강의 클립] 

[특별 제공] 한 번에 끝내는 파이썬 필수 문법

-Ch 12. 실전 미니 프로젝트

03. FASTCAMPUS BLOG 게시글 로딩하기.py

04. FASTCAMPUS BLOG 메뉴출력하기, 글쓰기.py

 

[※ 기타사항메모 ※]
{100% 환급챌린지 미션 가이드 참조 : 

https://fastcampus.co.kr/event_online_challenge_2401_mission}

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr