데이터 분석/Python

[실습] 함수와 객체

toraa 2025. 1. 6. 14:00

[실습1] x에 10.1을 저장하고, y에 101을 저장한 다음 더한후 정수로 출력

x=10.1
y=101
go=x+y
int(go)
111

[실습2] a=1, b=5로 할당하고 문자열 포맷으로 'a + b는'과 a+b 계산 결과를 print( )로 함께 출력

출력 결과 예시
1 + 5는 6

a=1
b=5
ab=a+b
print(f'{a}+{b}는 {ab}')
1+5는 6

[실습3] 초를 나타내는 time 값을 다음과 같이 시간,분,초로 나타내는 포맷으로 변경하세요

  • // : 나누기의 몫만 반환
  • % : 나머지를 반환

5000초는 1시간 23분 20초 입니다.

time = 5000

sec = time%60
hr = (time//60)//60
min = (time//60)%60

print(f'{time}초는 {hr}시간 {min}분 {sec}초 입니다.')
5000초는 1시간 23분 20초 입니다.

[실습4] 다음 정의된 함수를 실행하고, 반환된 값을 출력하세요.

def info(name):
    text = f'어서오세요 {name}님'
    return text

# 함수 실행
info('티모')
'어서오세요 티모님'

[실습5] 실습3의 초변환 기능을 함수로 정의하세요, 이때 초가 입력되는 time인자을 정의하고 만들어진 문자열이 반환되는 return을 정의하세요.

def clock_time(time):
    hr = time//3600
    min = (time//60)%60
    sec = time % 60
    return f'{time}초는 {hr}시간 {min}분 {sec}초입니다.'

clock_time(5000)
'5000초는 1시간 23분 20초입니다.'

[실습6] 다음 클래스(Member)를 활용해 자신의 이름과 나이가 들어간 인스턴스 생성하고, print_info() 함수를 통해 다음 문구 출력

저의 이름은 000, 나이는 00 입니다.

class Member:
    def __init__(self, name, age):
        self.name = name
        self.age = age         
    def print_info(self):
        return f'저의 이름은 {self.name} 나이는 {self.age} 입니다.'

# 인스턴스 생성
member = Member("김혁규", 29)

# print_info() 함수 호출 및 출력
print(member.print_info())
저의 이름은 김혁규 나이는 29 입니다.

[실습7] 다음 요구사항을 만족하는 클래스를 생성하세요

Customer 클래스 정의

  • 생성자 #__init__의미
    • 인자: 고객 이름(name)과 고객 번호(c_id)
    • 인자로 입력된 데이터를 셀프변수에 저장
    • 0이 할당된 계좌금액 셀프변수 생성
  • add_amount 함수 생성
    • 인자: 입금 금액
    • 계좌금액 셀프변수에 입금 금액 추가
    • self.a = self.a + inp => self.a += inp
  • sub_amount 함수 생성
    • 인자: 출금 금액
    • 계좌금액 셀프변수에 출금 금액 차감
  • get_amount 함수 생성
    • 계좌금액 셀프변수 반환수 생 get_amount 함수 생성 계좌금액 셀프변수 반환
class Customer:
    
    def __init__(self, name, c_id):
        self.name=name
        self.c_id=c_id
        self.account_set=0

    def add_amount(self, amount):
        self.account_set += amount

    def sub_amount(self, amount):
        self.account_set -= amount

    def get_amount(self):
        return self.account_set

# Customer 인스턴스 생성
customer = Customer("룰루", 15)

# 입금
customer.add_amount(10000)

# 출금
customer.sub_amount(450)

# 계좌 금액 확인
print(f'{customer.name}님의 계좌 잔액은 {customer.get_amount()}원 입니다.')
룰루님의 계좌 잔액은 9550원 입니다.

[실습8] Customer 인스턴스를 생성하여 다음과 같은 구성을 만드세요

  • 임의의 고객명과 고객번호를 가지는 Customer 인스턴스를 2개 생성하고 변수에 각각 할당하세요
  • 첫번째 고객의 계좌금액을 5000 추가하세요
  • 두번째 고객의 계좌금액을 3000 추가하세요
  • 두 고객의 계좌금액을 출력하세요
  • 첫번째 고객의 계좌금액을 2000 차감하세요
  • 두번째 고객의 계좌금액을 1000 차감하세요
  • 두 고객의 계좌금액을 출력하세요
# 고객 생성
customer1 = Customer("럼블", 12)
customer2 = Customer("트타", 13)

# 첫 번째 고객 계좌금액 5000 추가
customer1.add_amount(5000)

# 두 번째 고객 계좌금액 3000 추가
customer2.add_amount(3000)

# 두 고객의 계좌금액 출력
print(f'{customer1.name}님의 계좌 잔액은 {customer1.get_amount()}원 입니다.')
print(f'{customer2.name}님의 계좌 잔액은 {customer2.get_amount()}원 입니다.')


# 첫 번째 고객 계좌금액 2000 차감
customer1.sub_amount(2000)

# 두 번째 고객 계좌금액 1000 차감
customer2.sub_amount(1000)

# 두 고객의 계좌금액 출력
print(f'{customer1.name}님의 계좌 잔액은 {customer1.get_amount()}원 입니다.')
print(f'{customer2.name}님의 계좌 잔액은 {customer2.get_amount()}원 입니다.')
럼블님의 계좌 잔액은 5000원 입니다.
트타님의 계좌 잔액은 3000원 입니다.
럼블님의 계좌 잔액은 3000원 입니다.
트타님의 계좌 잔액은 2000원 입니다.