상세 컨텐츠

본문 제목

[Python 만들면서 배우기06] 만들면서 배우는 Python 경주마 만들기01

Python

by donggyu1998 2021. 7. 19. 23:10

본문

반응형

💡 글 작성자는 vscode를 활용하여 Python을 작성하고있습니다.

 

💡 [실행화면]

문제01

위 사진처럼 경주마를 출력하시오. 
경주마가 시작되었습니다.는 일반 출력문을 활용하고 나머지 내용들은 반복문을 활용하여 출력하시오.
1개의 class만 사용하고 setter, getter를 이용하여 이름, 점수, 위치 3가지의 함수를 만드시오.
객체 = class이름이 아닌 반복문을 활용하여 자료를 출력 및 배열을 이용하기.

 

💡 코드 확인

코드 주소 : https://pastebin.com/Pf2MKdVs

 

import os

class Horse:
    def __init__(self, name):
        self._name = name
        self._score = 0
        self._position = 0

    def getName(self):
        return self._name
    def setName(self, name):
        self._name = name
    def getScore(self):
        return self._score
    def setScore(self, score):
        self._score = score 
    def getPosition(self):
        return self._position
    def setPosition(self, position):
        self._position = position

def main():

    horse_list = []

    # 원래 코드
    #one = Horse("1번마")
    #two = Horse()#수정
    #three = Horse()
    #four = Horse()
    #five = Horse()
    #six = Horse()
    #seven = Horse()
    #eight = Horse()
    #nine = Horse()
    #ten = Horse()
    #horse_list.append(one)
    #horse_list.append(two)
    #horse_list.append(three)
    #horse_list.append(four)
    #horse_list.append(five)
    #horse_list.append(six)
    #horse_list.append(seven)
    #horse_list.append(eight)
    #horse_list.append(nine)
    #horse_list.append(ten)
    # 여기 까지

    for i in range(10):
        horse_list.append(Horse("%d번마" % (i+1)))

    line_length = 20

    print('-' * 45)
    print("★★★★\t'경주마가 시작되었습니다.'\t★★★★")
    print('-' * 45)

    for item in horse_list:
        print(item.getName(), ":", end="")

        for i in range(line_length):
            if item.getPosition() == i:#
                print(" " + item.getName() + "> ", end="")#
            print('-', end="")#
        
        print("")
    
if __name__ == "__main__":
    main()

 

 

💡 [실행화면]

문제02

문제01이 완료 되었으면 문제01에서 제작한 위치를 이용하여 경주마의 위치를 변경하시오.

💡 코드 확인 

: https://pastebin.com/NKyY8s03

 

💡 코드 설명

1. Horse class 생성

클래스는 객체를 표현하기 위한 문법입니다. 클래스는 class에 클래스 이름을 지정하고 :(콜론)을 붙인 뒤 다음 줄부터 def로 메서드를 작성합니다. 메서드는 클래스 안에 들어있는 함수를 뜻합니다.

참고 자료 
class 클래스이름 : #클래스 만들기
       def 메서드(self) #메서드 만들기 
       코드

클래스는 ()(괄호)를 붙인 뒤 변수에 할당하여 인스턴스(객체)를 만듭니다. 그리고 인스턴스 뒤에 .(점)을 붙여서 메서드를 호출합니다.

2. setter, getter를 활용하여 이름, 등수, 위치 값에 필요한 함수 코딩 return 값은 name, score, position

3. 인스턴스 = 클래스() #인스턴스 (객체) 만들기

- 인스턴스.속성 #인스턴스 속성에 접근

one = Horse("1번마"), appendItem(01~) 

현재까지 이런식으로 코드를 작성해왔다. 

그 이유는 기본적인 내용부터 배우기 위해서이다. 

 

하지만 지금 코드에서는 위처럼 많은 인스턴스를 만들지 않고 반복문을 활용한다.

for i in range(10): (1~9)까지의 말
horse_list = []에 Horse에 대한 내용을  append한다. 
horse_list.append(Horse("%d번마" % (i+1)))

%을 넣은 이유는 >> print("%d번 학생 축하합니다. 합격입니다. " % number) 이 코드를 보면 알 수 있다. 
그 후 10번까지의 말을 넣어야 하기 때문에 i+1을 추가해주었다.

4. line_length는 20이라는 값을 설정하였고 반복문에 사용된다.

 

5. horse_list 배열 0, 1번에 있는 값에 대해서 위치를 1과 2로 설정한다. 

horse_list[0].setPosition(1)

horse_list[1].setPosition(2)

 

 

반응형

관련글 더보기