본문 바로가기
개인숙제

개인숙제 추가수정

by useSword 2024. 3. 1.

어제 과제를 완료했지만 튜터님이 다른 방식으로 풀면 실력에 크게 도움이 될 것같다고 하셔서 다시 풀어봄.

그리고 튜터님들의 과제풀이를 보고 여러가지 풀이형식과 다른분들의 도움이 될 정보들을 보았다.

 

 

1. 개인과제 1번을 함수형식으로 다시 풀이

 

import random


def play_game(random_number):
    max_try = 0
    number = None
    while True:
        print("100 이하의 숫자를 입력하세요:")
        try:
            number = int(input())
        except ValueError:
            print("옳지 않은 값입니다.100 이하의 숫자를 입력하세요")
            continue

        max_try += 1

        if random_number > number:
            print("up")

        elif random_number < number:
            print("down")

        else:
            print("정답")
            print(f"시도한 횟수 {max_try}")
            max_try = 0
            break


def game_restart():
    while True:
        print("다시 하시겠습니까? (y/n):")
        input_ = input().lower()
        if input_ == 'y':
            print("다시시작합니다.")
            break
        else:

            exit()


def play_RSP():
    while True:
        random_number = random.randint(1, 100)
        print("게임을 시작합니다")
        play_game(random_number)
        game_restart()


play_RSP()

 

 

느낀점

 

이 과정에서 하면서 느낀점은 내가 큰 틀을 이해하고 있다면 각 부분들을 세션으로 나누어서 끼어맞출 수 있다는 점이 좋았다. 그리고 각각 수정하는 편도 상당히 편했었다.

 

힘든점

어디를 어떻게 나누어서 조립할까가 생각보다 오랜 생각을 걸치게 했었다.

막상 처음부터 차근차근할려고 노력해봐도 머리로는 생각되는게 코드로 잘 이행되지 않았었다.
개인적으로 바로 이런 방식의 코드는 아직 미숙해서 바로 작성은 힘들 것 같고 한번 대강 코드를 짜고 나누어야할 부분들을 선택 후 해야할 것 같다.

 

 

2. 개인과제 3번을 DB로 해결했기 요구한 방법과 다른 방법인 것 같아 다시 해결

 

class Member():
    def __init__(self, name, username, password):
        self.name = name
        self.username = username
        self.password = password

    def display(self):
        print(f'이름 : {self.name} 닉네임 {self.username}')


class Post():
    def __init__(self, title, contents, author):
        self.title = title
        self.contents = contents
        self.author = author

    def display(self):
        print(f'제목: {self.title}, 내용: {self.contents}, 작성자: {self.author}')


members = []

# member
kim = Member('kim', 'ModeExplorer', 456456)
lee = Member('lee', 'hasty', 123123)
park = Member('park', 'parkGOON', 789789)

members.append(kim)
members.append(lee)
members.append(park)

for x in members:
    x.display()

print(members)


posts = []
# post
authors = ['kim', 'lee', 'park']
for i in range(1, 20):
    title = f'{i}번째'
    contents = f'{i}등이야'
    author_index = i % 3
    author = authors[author_index]

    post = Post(title, contents, author)
    posts.append(post)


print(posts[0].author)

for post in posts:
    if post.author == 'kim':
        post.display()

for x in posts:
    if '2등' in x.contents:
        x.display()

 

느낌점

 

기존에는 원래는 DB에 저장하여 변수를 인스턴스화하고 그 값들을 클라이언트에서 가져왔었다.

실질적으로 문제를 풀지는 않았던 것 같아 다시 풀이를 했었는데 처음에는 반복문을 만들고 이걸 어떻게 인스턴스화하지 라는 생각이 들었었다.금방 해결은 했지만 아직 인스턴스화가 바로바로 되질 않는 것 같다.

내가 편하게 하기 위해 있는 방법 중 하나인데 아직 자유자재로 활용하지 못하고 있는 것 같다.

 

 

힘든점

 

반복문을 바로 만들고 인스턴스화를 하는데 약간 생각이 들었었다.

아직 append를 사용해서 리스트,튜플 형식으로 넣을 때 헷갈린다. 이건 조금만 더 연습하면 해결될 것 같다.

 

 

주말에 진행할 일

 

1. 클라이언트에서의 post생성에 이미지를 추가하여 postpage에 좀 더 예쁘게 만들어졌으면 한다.

이 때 약간 걱정이 된다. DB이기에 URL 주소를 넘겨줘야할 것 같은데 이러면 아래와 같은 선택지가 생긴다.
  1-1. 다른곳에 이미지를 저장하고 URL를 가져오는 형식  1-2. 되도록이면 DB에 이미지를 저장하는 방법을 알아내고 우선 다른 방법이 있나 찾아보고 진행해야할 것 같다.

세션,토큰,웹DB 이런쪽에 저장해도 금방 지워지기 때문에 DB에 저장해야하는데 어떤 방법을 해야할지 고민된다

되도록이면 2번을하고 싶다.

 

2. 애니메이션도 추가하고 싶다.

 

 

'개인숙제' 카테고리의 다른 글

개인 과제 완료  (0) 2024.02.28
react와 python을 사용하여 과제 3 ,4번 해결하기  (0) 2024.02.27
첫번째 개인과제1,2번(파이썬)  (0) 2024.02.22