본문 바로가기
10. 클래스(class)/객체지향 이해하기

[파이썬 클래스와 객체지향] 4. 절차지향 3단계

by 만다린망고 2023. 5. 23.
반응형

우리는 헬스장 회원관리 예제를 이용하여 파이썬 객체지향을 공부하고 있습니다. 지난시간에는 절차지향 방식으로 코드를 만들었습니다. 오늘은 절차지향 마지막 시간입니다. 

지난 시간에 만든 코드는 아래와 같습니다. 

mylist=[]
mnum=0

while True :

    print() #한 줄 띄기
    print('Add member : press a')
    print('search member : press b')
    action=input('press button ')

    if action=='a' :

        print() #한 줄 띄기
        #inputs
        name = input('enter your name ')
        name = name.lower() # force lowercase
        age = int(input('enter your age '))
        sex = input('enter your sex ')
        sex = sex.lower() # force lowercase
        mcount=int(input('enter your membership count ')) #membership count

        #define dict
        dict={'mnum':mnum,'name':name,'age':age,'sex':sex,'mcount':mcount}

        #add in list
        mylist.append(dict)

        #print info
        print('Below is your information')
        print(dict)

        mnum=mnum+1


    elif action=='b' :

        while True : 

            print() #한 줄 띄기
            mn = int(input('what is the membership number? ')) #input 값 숫자에 넣기

            first_values=[]
            for my_dict in mylist:
                first_values.append(list(my_dict.values())[0])

            if mn in first_values :
                print(mylist[mn])
                break
            else :
                print('none exist member')
                continue

    else :
        print()
        print('no button exist')


회원 추가하기, 회원 검색하기라는 두가지 기능을 수행하는 코드입니다. 오늘은 위 코드를 한번더 발전시키겠습니다. 

 

1) 초기 버튼에 '회원권 사용하기' 를 추가하세요.
2) 회원권 사용하기에서 회원번호를 물어보시고, 회원 번호를 입력받아 회원권을 차감되게 하세요. 
3) 회원권이 0개일 경우, 회원권이 없어서 차감이 불가능합니다 라고 띄우고 첫 화면으로 돌아가기. 
4) 회원권이 1개 이상일 경우, 회원권을 차감하고 '입장하십시오' 라고 띄우고 첫 화면으로 돌아가기. 

 

수정한 코드는 아래와 같습니다. 

 

#지난 코드를 수정하여 작성하세요.
#초기 버튼에 '회원권 사용하기' 를 추가하세요.
#회원권 사용하기에서 회원번호를 물어보시고, 회원 번호를 입력받아 회원권을 차감되게 하세요. 
#회원권이 0개일 경우, 회원권이 없어서 차감이 불가능합니다 라고 띄우고 첫 화면으로 돌아가기. 
#회원권이 1개 이상일 경우, 회원권을 차감하고 '입장하십시오' 라고 띄우고 첫 화면으로 돌아가기. 

mylist=[]
mnum=0

#def usem()

while True :

    print() #한 줄 띄기
    print('Adding member : press a')
    print('searching member : press b')
    print('using membership coupon : press c')
    action=input('press button ')

    if action=='a' :

        print() #한 줄 띄기
        #inputs
        name = input('enter your name? ')
        name = name.lower() # force lowercase
        age = int(input('enter your age? '))
        sex = input('enter your sex? ')
        sex = sex.lower() # force lowercase
        mcount=int(input('enter your membership count ')) #membership count

        #define dict
        dict={'mnum':mnum,'name':name,'age':age,'sex':sex,'mcount':mcount}

        #add in list
        mylist.append(dict)

        #print info
        print('Below is your information')
        print(dict)

        mnum=mnum+1


    elif action=='b' :

        while True : 

            print() #한 줄 띄기
            mn = int(input('what is the membership number? ')) #input 값 숫자에 넣기

            first_values=[]
            for my_dict in mylist:
                first_values.append(list(my_dict.values())[0])

            if mn in first_values :
                print(mylist[mn])
                break
            else :
                print('none exist member')
                continue

    elif action=='c' :

        while True : 

            print() #한 줄 띄기
            num = int(input('what is the membership number? ')) #input 값 숫자에 넣기

            first_values=[]
            for my_dict in mylist:
                first_values.append(list(my_dict.values())[0])

            if num in first_values :
                

                if mylist[num]['mcount']<1 :
                    print('We cannot deduct it because you do not have a membership coupon.')
                    break

                else :
                    mylist[num]['mcount']=mylist[num]['mcount']-1

                    print()
                    print('below is your updated info')
                    print(mylist[num])
                    break                       

            else :
                print('none exist member')
                continue



    else :
        print()
        print('no button exist')



지난시간에 비해 변경된 코드를 설명하겠습니다. 회원권을 사용하고 싶은 경우 c를 입력하라는 문구입니다. 

print('using membership coupon : press c')


c를 선택했을 때 작동하는 코드는 elif 를 이용하여 구현하였습니다. 회원번호를 먼저 입력하면 회원권이 사용되도록 하였습니다. 만약 회원권이 1개 미만일 경우 회원권이 없다는 메시지가 출력되도록 하였습니다. 

elif action=='c' :

    while True : 

        print() #한 줄 띄기
        num = int(input('what is the membership number? ')) #input 값 숫자에 넣기

        first_values=[]
        for my_dict in mylist:
            first_values.append(list(my_dict.values())[0])

        if num in first_values :


            if mylist[num]['mcount']<1 :
                print('We cannot deduct it because you do not have a membership coupon.')
                break

            else :
                mylist[num]['mcount']=mylist[num]['mcount']-1

                print()
                print('below is your updated info')
                print(mylist[num])
                break                       

        else :
            print('none exist member')
            continue

 

아래는 실행 예시입니다. 

 

Adding member : press a
searching member : press b
using membership coupon : press c
press button a

enter your name? kim
enter your age? 15
enter your sex? m
enter your membership count 22
Below is your information
{'mnum': 0, 'name': 'kim', 'age': 15, 'sex': 'm', 'mcount': 22}

Adding member : press a
searching member : press b
using membership coupon : press c
press button c

what is the membership number? 0

below is your updated info
{'mnum': 0, 'name': 'kim', 'age': 15, 'sex': 'm', 'mcount': 21}
반응형

댓글