Coding/Task

클래스와 함수 사용하기

코딩짜는 머글 2024. 10. 13. 16:15

오늘은 남은 나머지 개인과제중에 두번째과제를 풀어보았다.

약간 걱정은 있었지만 그래도 첫번째처럼 무사히 잘 풀리기를 바라면서 열심히 코드를 짜보았다.

 

두번째 개인과제는 클래스와 함수 사용하기이다.

과제 내용

  • 이름, 성별, 나이를 입력받고, 이를 출력하는 프로그램을 작성해주세요.

처리 조건

  • 클래스 정의
    • Person이라는 이름의 클래스를 정의한다.
  • 멤버 변수
    • name, gender, age라는 멤버 변수를 설정한다.
    • 각 변수는 객체가 생성될 때 초기화된다.
      • name: 이름을 저장하는 변수 (문자열)
      • gender: 성별을 저장하는 변수 (문자열, "male" 또는 "female")
      • age: 나이를 저장하는 변수 (정수형)
  • 생성자
    • 생성자 __init__를 통해 객체 생성 시 이름, 성별, 나이를 초기화한다.
    • 매개변수로 이름(name), 성별(gender), 나이(age)를 받는다.
  • 정보를 출력하는 함수 display()
    • name, gender, age 값을 출력하는 기능을 구현한다.
    • 이름과 성별은 같은 행에 출력하고, 나이는 다음 행에 출력한다.
  • 입력 및 출력
    • 사용자로부터 나이, 이름, 성별을 각각 입력받는다.
    • 입력된 값을 바탕으로 Person 객체를 생성하고, display() 함수를 통해 객체의 정보를 출력한다.

예시 입출력

사용자 입력 예시

나이: 28
이름: 페이커
성별: male

 

출력 예시

이름: 페이커, 성별: male
나이: 28

 

이상이 두번째 과제의 내용과 설명이다.

 

그래도 클래스에 관한건 이전에 혼자서 만들어본 다른 예제들도 있고해서 생각보다 쉽게 끝냈다.이번에도 도전과제에서 조금 시간이 걸리긴했지만 첫번째 과제했던것을 참고하며 잘 풀어냈다!! 이건 도전과제를 하기전인 필수과제의 풀이다.

class Person:
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender

    def display(self):
        print (f"이름: {self.name}, 성별: {self.gender}")
        print (f"나이: {self.age}")

 

 

도전과제의 내용은↓

추가 도전 과제

 

Person 클래스 생성자에서 사용자의 성별 입력값에 대한 유효성 검사를 추가해주세요.

  • 참고
    • gender 값이 male 또는 female로만 입력될 수 있도록 제한하는 로직을 넣으면 됩니다.
    • 잘못된 입력이 들어오면 오류 메시지를 출력하고, 올바른 성별을 입력받을 때까지 반복해서 입력을 받도록 구현할 수 있습니다.
나이: 28
이름: 페이커
성별: 남성
잘못된 성별을 입력하셨습니다. 'male' 또는 'female'을 입력하세요.
성별:

 

Person 클래스에 나잇대에 맞는 인사 메시지를 출력할 수 있도록 greet() 함수를 추가해주세요

  • 참고
    • **greet() 함수**는 age 값에 따라 다음과 같은 메시지를 출력합니다.
나이: 28
이름: 페이커
성별: male
이름: 페이커, 성별: male
나이: 28
안녕하세요, 페이커! 성인이시군요!

 

이상이 도전과제의 내용이다. 이내용을 토대로 내가 만든 코드는...

class Person:
    def __init__(self, name, gender, age):
        self.name = name
        self.gender = gender
        self.age = age

    def display(self):
        print (f"이름: {self.name}, 성별: {self.gender}")
        print (f"나이: {self.age}")
        while self.gender not in ['male','female']:
            print("잘못된 성별을 입력하셨습니다. 'male' 또는 'female'을 입력하세요.")
            a = (input('성별:'))
            if a in ['male','female']:
                break

    def greet(self):
        if self.age < 20:
            print(f'안녕하세요, {self.name}님! 미성년자시군요!!')
        else:
            print(f'안녕하세요, {self.name}님! 성인이시군요!!')

 

후... 정말 열심히 짰다. (예시로 적혀있던 페이커이름은 바꾸지 않았다. 나는 페이커 팬이기때문에!!)

이번에는 gpt한테 평가를 맡기지않을거야..... 튜터님들에게 평가를 맡기겠다...

gpt는 너무 야박하기때문에 씁쓸한 기분^^

이렇게 해서 두번째과제 까지 끝내고 마지막 세번째 과제만이 남아있다... 그런데 마지막 과제는 라이브러리과제라서... 내가 아직 그쪽은 강의를 이제 막 끝냈을 뿐더러 내용도 잘 이해하지못했다...강의로 더 보충을하고 난 뒤에야 풀 수 있을듯하다!