이번 시간부터 '헬스장 회원등록 예제' 코드를 함께 작성할 것입니다. 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
'10. 클래스(class) > 객체지향 이해하기' 카테고리의 다른 글
[파이썬 클래스와 객체지향] 6. 객체지향 2단계 (0) | 2023.05.24 |
---|---|
[파이썬 클래스와 객체지향] 5. 객체지향 1단계 (0) | 2023.05.24 |
[파이썬 클래스와 객체지향] 4. 절차지향 3단계 (0) | 2023.05.23 |
[파이썬 클래스와 객체지향] 3. 절차지향 2단계 (0) | 2023.05.21 |
[파이썬 클래스와 객체지향] 1. 어떻게 공부할 것인가? (1) | 2023.05.16 |
댓글