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

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

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

이번 시간부터 '헬스장 회원등록 예제' 코드를 함께 작성할 것입니다. 2,3,4 강에서는 절차지향 방식으로 코드를 작성하고 5,6,7 강에서 클래스를 도입하여 객체지향 방식으로 코드를 수정해 볼 것입니다. 

 

아래 세가지 조건을 만족하는 코드를 짜면 됩니다. 

 

1) 헬스장 회원의 이름, 나이, 성별, 회원권 횟수를 입력받는 코드를 작성하시오. 

2) input 을 사용하여 정보를 입력받으시오
3) 입력받은 정보는 dict 형태로 저장하고, 각 회원의 dict 는 list 안에 저장하시오

 

전체 코드를 보여드리고 각각을 자세히 설명하는 방식으로 진행하겠습니다. 

 

mylist=[]

while True :

    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={'name':name,'age':age,'sex':sex,'mcount':mcount}

    #add in list
    mylist.append(dict)

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

 

지금부터 위 코드를 설명할 건데요. 한번에 다 설명하면 이해하기 어려우니 적당히 나눠서 설명하겠습니다.  

 

먼저 비어있는 리스트를 생성합니다. 고객 정보를 딕셔너리로 정의하고 딕셔너리를 리스트의 원소로 넣을 것이니다. 

 

mylist=[]

 

while 문은 반복을 위한 것이므로 생략하고 마지막에 설명하겠습니다. 먼저 input 함수를 이용하여 이름을 입력받아서 name 변수에 넣어줍니다. 실행시켜 보면 아시겠지만 input 함수는 사용자에게 직접 값을 입력받도록 해주는 함수입니다. 대소문자를 섞어 쓸 수도 있으므로 lower 메소드를 이용하여 소문자로 통일하고 다시 name 변수에 입력합니다. 

 

name = input('enter your name ')
name = name.lower() # force lowercase

 

나이, 성별, 헬스장 이용권 횟수(mcount) 도 input 함수로 입력받아서 각각의 변수에 넣어줍니다. 

 

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

 

name, age, sex, mcount 를 딕셔너리의 원소로 입력하고 dict 변수에 저장합니다. 

 

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

 

dict 변수를 위에서 정의한 mylist 의 원소에 추가해줍니다. 

 

#add in list
mylist.append(dict)

 

입력된 정보를 한번 출력해서 확인시켜줍니다. 

 

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

 

마지막으로 while 문으로 mylist 를 제외한 전체를 감싸주면 됩니다. 코드가 반복되며 여러 회원을 입력받을 수 있습니다. 만약 mylist 를 while 문 안에 넣으면 매번 새로 mylist 가 생성되기 때문에 누적해서 회원 정보를 저장할 수 없습니다. 

 

아래는 실행 예시입니다. 

 

enter your name kim
enter your age 15
enter your sex m
enter your membership count 11
Below is your information
{'name': 'kim', 'age': 15, 'sex': 'm', 'mcount': 11}

enter your name

 

반응형

댓글