반응형

1번 문제

Person class 를 정의하고

조건

• name, id, age, height, weight 변수선언

• __str__(self) 메서드 재정의(overriding)

 각 항목에 Person class 의 객체를 갖는 리스트 정의

 각각 객체의 필드 name, 에 “을지문덕”, “계백”, “김유신”, “강감찬“, “이순신”을 대입

 각각의 age, height, weight 대입 4. 각 인물의 이름과 나이 키 몸무게 순서로 5명의 데이터를 출력

 

class Person:
    name=""
    id=""
    age=0
    height=0
    weight=0

    def __init__(self,name,id,age,height,weight):
        self.name = name
        self.id= id
        self.age = age
        self.height = height
        self.weight = weight
        
    def __str__(self):
        return "이름: " + self.name +  "나이: " + str(self.age) + "키: " + str(self.height) + "몸무게: " + str(self.weight)
    

def main():
    manyperson = [Person("을지문덕","1",20,60,174),Person("계백","2",23,80,194),Person("김유신","3",18,59,174),Person("강감찬","4",25,78,180),Person("이순신","5",24,67,184)]
    for i in range(0,5):
        print(manyperson[i])


if  __name__ == "__main__":
    main()

 person 클래스를 생성하고 init 함수를 생성하여 변수값들을 초기화 해줍니다.( 생성자)

__str__ 메소드를 함수오버라이딩 하여 사용합니다. 객체에 대한 반환값을 문자열로 전달하는 것입니다. 

그 이후 리스트를 생성하고 반복문을 통해서 출력해주면 됩니다. 

 

 

2번 문제 

원을 나타내는 Circle라는 클래스를 설계,

 반지름 radius와  중심 좌표 cx와 cy를 통하여

 원의 넓이를 반환하는 메소드 area()와

 원의 중심을 반환하는 메소드 center () 를 구현 클래스를 완성하고 객체를 생성하여 임의의 값을 대입하여 원의 넓이와 그 중심 좌표값을 화면에 출력하시오.

 

import math


class Circle:
    radius =0
    cx=0
    cy=0

    def __init__(self, radius, cx, cy):
        self.radius = radius
        self.cx = cx
        self.cy = cy
    def area(self):
        return self.radius*self.radius*math.pi
    def center(self):
        return self.cx,self.cy
    

def main():
    radius =0
    cx=0
    cy=0
    print("정보를 입력하세요")
    radius=int(input("반지름:"))
    cx=int(input("x좌표:"))
    cy=int(input("y좌표:"))
    circle = Circle(radius,cx,cy)

    #함수호출
    print("원의 넓이: "+str(circle.area()))
    print("중심좌표: "+str(circle.center()))


if  __name__ == "__main__":
    main()

 circle 클래스를 생성하고 init 함수를 생성하여 변수값들을 초기화 해줍니다.( 생성자)

area, center 메소드를 생성해서 값을 전달해줍니다. 

main 메소드에서는 int(input())의 형태로 int형 숫자를 입력받습니다. 

math 라이브러리에 pi값을 사용하였습니다.

 

 

3번 문제 

주사위 클래스 Dice를 설계하는데 메소드에는 roll()을 구현하여 주사위를 던져 나온 숫자를 화면에 출력하는 프로그램을 작성하시오.

-단, 난수의 발생은 다음을 이용하라. -face = random.randint(1, 6)

 

import random as rd

class Dice:

    face = 0
    def __init__(self):
        self.face = 0
    
    @classmethod
    def roll(self):
        self.face = rd.randint(1,6)
        return self.face


def main():
    print("주사위를 굴리려먼 아무값이나 입력하세요")
    input()
    print("주사위값: " + str(Dice().roll()))



if  __name__ == "__main__":
    main()

 

random 라이브러리의 randint 메소드를 사용하여 난수를 생성하였습니다. 

 

 

반응형

+ Recent posts