Python
[Python 만들면서 배우기06] 만들면서 배우는 Python 경주마 만들기01
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)
반응형