빅데이터 & 딥러닝 스터디/파이썬 스터디(김변수와 시작하는 코딩생활 3기)

8/22 (월) 김변수와 시작하는 코딩생활 with 파이썬 스터디 14일차(선택2 좌표 설정하기)

승이네 2022. 8. 22. 00:12
반응형

 

 선택 과제 3-14. 좌표 설정하기

 

 좌표를 설정할 수 있는 클래스를 작성하고, 해당 클래스의 인스턴스를 생성하여 활용해 보세요.

 

조건1 : 클래스는 생성자를 통해 (x, y) 좌표를 초기화 합니다.

조건2 : 다음과 같은 기능을 메소드로 가집니다.

 - x좌표만 설정

 - y좌표만 설정

 - (x, y) 좌표를 반환

 - (x, y) 좌표를 (dx, dy)만큼 이동

조건3 : 반복문과 조건문을 이용해 좌표를 이동시키고, 이동한 최종 좌표를 출력합니다.

 

class Coordinate:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def move(self, movex, movey):
        self.x = self.x + movex
        self.y = self.y + movey

    def rex(self, rex):
        self.x = rex

    def rey(self, rey):
        self.y = rey

    def printCoordinate(self):
        print(f"현재 좌표 : {int(self.x), int(self.y)}")

x = int(input("x 좌표를 입력해 주세요. : "))
y = int(input("y 좌표를 입력해 주세요. : "))

coordinate_out = Coordinate(x, y)
coordinate_out.printCoordinate()
print("""
x 좌표 설정을 원한다면 x를,
y 좌표 설정을 원한다면 y를,
좌표 이동을 원한다면 m을,
좌표 설정을 종료하려면 0을 입력해 주세요""")    

while True:
    
    print("")
    choose = input("입력 : ")
    print("")

    if choose == "x":
        rex = int(input("x 좌표를 입력해 주세요. : "))
        coordinate_out.rex(rex)

    elif choose == "y":
        rey = int(input("y 좌표를 입력해 주세요. : "))
        coordinate_out.rey(rey)

    elif choose == "m":
        movex = int(input("x 좌표를 얼마만큼 이동할지 입력해 주세요. : "))
        movey = int(input("y 좌표를 얼마만큼 이동할지 입력해 주세요. : "))
        coordinate_out.move(movex, movey)
        
    elif choose == "0":
        break

    else:
        print("잘못된 선택입니다. 다시 선택해주세요.")

coordinate_out.printCoordinate()

 처음에 '조건3 : 반복문과 조건문을 이용해 좌표를 이동시키고, 이동한 최종 좌표를 출력합니다.'를 이해하지 못했는데 반복문은 while문을 쓰라는 얘기였네요 ㅎㅎ

이제 클래스를 사용한 코딩도 잘 할 수 있네요.

반응형