클래스와 함수 활용
Python의 클래스(Class)와 함수(Function)를 활용한 간단한 데이터 입력 및 출력 프로그램
클래스와 함수 활용 과제 🧑💻
Python의 클래스(Class)와 함수(Function)를 활용한 간단한 데이터 입력 및 출력 프로그램
📋 과제 목표
- Python의 클래스와 객체 지향 프로그래밍 개념 학습.
- 사용자 입력 처리와 출력 포맷팅 연습.
- (선택) Pandas를 활용한 데이터 처리 연습.
⚙️ 기능 설명
기본 기능
- 클래스 정의:
Person
클래스는 사용자 정보를 저장하고 관리하는 데 사용됩니다.
- 멤버 변수:
name
: 사용자 이름 (문자열).gender
: 사용자 성별 (문자열, “male” 또는 “female”).age
: 사용자 나이 (정수).
- 생성자
__init__
:- 객체 생성 시
name
,gender
,age
를 초기화합니다.
- 객체 생성 시
- 정보 출력 함수
display()
:- 입력된 정보를 출력합니다.
- 출력 예시:
1 2
이름: 페이커, 성별: male 나이: 28
추가 도전 과제
- CSV 파일 읽기:
- Pandas를 사용하여 인구 데이터 파일(
pop_kor.csv
)을 읽고 출력합니다. - DataFrame의 인덱스를
구별
로 설정합니다.
- Pandas를 사용하여 인구 데이터 파일(
- DataFrame 병합:
- 주어진 DataFrame과 읽어온 데이터를
join
을 사용해 병합합니다.
- 주어진 DataFrame과 읽어온 데이터를
- 정렬:
- 병합된 DataFrame에서
검거율
을 기준으로 오름차순 정렬 후 출력합니다.
- 병합된 DataFrame에서
💻 실행 예제
기본 기능
1
2
3
4
5
나이: 28
이름: 페이커
성별: male
이름: 페이커, 성별: male
나이: 28
추가 도전 과제 (선택)
- CSV 파일 읽기:
1 2 3
import pandas as pd df = pd.read_csv('pop_kor.csv', index_col='구별') print(df)
- 병합 및 정렬:
1 2 3
merged_df = quiz_df.join(df) sorted_df = merged_df.sort_values(by='검거율', ascending=True) print(sorted_df)
🛠️ 주요 기술
- 클래스와 객체 지향 프로그래밍:
- Python의 클래스 정의, 생성자 활용, 멤버 함수 구현.
- Pandas를 사용한 데이터 처리 (선택):
- CSV 파일 읽기, DataFrame 병합, 정렬.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 클래스 선언하기
class Person:
# __init__ 함수 생성하기 : 객체 생성할 때 초기화
def __init__(self, name, age, gender):
# self에 매개변수 값 저장하기
self.name = name
self.age = age
# gender 값이 해당 값이 아닌 경우에 다시 입력 받도록 하기 : 유효성 검사
while gender not in ["male", "female"]:
print("*****male 또는 female만 입력 가능*****")
#lower() 함수 사용해서 입력 값소문자로 만들기
gender = input("성별 재입력: ").lower()
# 유효성 검사 통과시 값 저장
self.gender = gender
# 객체를 출력하거나 시각적으로 표현할 때 사용하는 메서드 생성: 객체를 문자열로 반환
def __repr__(self):
return f"이름: {self.name}, 성별: {self.gender}\n나이: {self.age}"
# 사용자 나이에 따른 메시지 출력하는 메서드 생성
def greet(self):
# 나이 19세 초과시
if self.age > 19:
print("성인인가요? 안녕하세여")
# 19세 이하인 경우
else:
print("너 미성년자임? 안녕")
# 사용자가 입력할 수 있도록 input()사용
name = input("이름: ")
age = int(input("나이: "))
#lower() 함수 사용해서 입력 값소문자로 만들기
gender = input("성별 (male/female): ").lower()
# 객체 생성
person = Person(name, age, gender)
# __repr__메서드 출력 결과 : Jupyter Notebook에서 사용 가능
display(person)
# greet 메서드 호출하기
person.greet()
This post is licensed under CC BY 4.0 by the author.