Post

클래스와 함수 활용

Python의 클래스(Class)와 함수(Function)를 활용한 간단한 데이터 입력 및 출력 프로그램

클래스와 함수 활용 과제 🧑‍💻

Python의 클래스(Class)와 함수(Function)를 활용한 간단한 데이터 입력 및 출력 프로그램

📋 과제 목표

  1. Python의 클래스와 객체 지향 프로그래밍 개념 학습.
  2. 사용자 입력 처리출력 포맷팅 연습.
  3. (선택) Pandas를 활용한 데이터 처리 연습.

⚙️ 기능 설명

기본 기능

  1. 클래스 정의:
    • Person 클래스는 사용자 정보를 저장하고 관리하는 데 사용됩니다.
  2. 멤버 변수:
    • name: 사용자 이름 (문자열).
    • gender: 사용자 성별 (문자열, “male” 또는 “female”).
    • age: 사용자 나이 (정수).
  3. 생성자 __init__:
    • 객체 생성 시 name, gender, age를 초기화합니다.
  4. 정보 출력 함수 display():
    • 입력된 정보를 출력합니다.
    • 출력 예시:
      1
      2
      
       이름: 페이커, 성별: male
       나이: 28
      

추가 도전 과제

  1. CSV 파일 읽기:
    • Pandas를 사용하여 인구 데이터 파일(pop_kor.csv)을 읽고 출력합니다.
    • DataFrame의 인덱스를 구별로 설정합니다.
  2. DataFrame 병합:
    • 주어진 DataFrame과 읽어온 데이터를 join을 사용해 병합합니다.
  3. 정렬:
    • 병합된 DataFrame에서 검거율을 기준으로 오름차순 정렬 후 출력합니다.

💻 실행 예제

기본 기능

1
2
3
4
5
나이: 28
이름: 페이커
성별: male
이름: 페이커, 성별: male
나이: 28

추가 도전 과제 (선택)

  1. CSV 파일 읽기:
    1
    2
    3
    
    import pandas as pd
    df = pd.read_csv('pop_kor.csv', index_col='구별')
    print(df)
    
  2. 병합 및 정렬:
    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.