오늘은 남은 나머지 개인과제중에 두번째과제를 풀어보았다.
약간 걱정은 있었지만 그래도 첫번째처럼 무사히 잘 풀리기를 바라면서 열심히 코드를 짜보았다.
두번째 개인과제는 클래스와 함수 사용하기이다.
과제 내용
- 이름, 성별, 나이를 입력받고, 이를 출력하는 프로그램을 작성해주세요.
처리 조건
- 클래스 정의
- 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는 너무 야박하기때문에 씁쓸한 기분^^
이렇게 해서 두번째과제 까지 끝내고 마지막 세번째 과제만이 남아있다... 그런데 마지막 과제는 라이브러리과제라서... 내가 아직 그쪽은 강의를 이제 막 끝냈을 뿐더러 내용도 잘 이해하지못했다...강의로 더 보충을하고 난 뒤에야 풀 수 있을듯하다!
'Coding > Task' 카테고리의 다른 글
숫자 맞추기 게임 (1) | 2024.10.11 |
---|---|
웹개발 gpt 4주차 숙제 (5) | 2024.09.20 |
웹개발 gpt 3주차 숙제 (1) | 2024.09.13 |
1주차 (숙제) (0) | 2024.09.02 |
스타터노트 (0) | 2024.08.27 |