함수 참고 코드

member.py
# -*- coding: UTF-8 -*-
di = {
    'member' : 
        [
            {'name':'정재우','age':27,'address':'서울시 송파구 오금로61길',
            'job':'대학생','hobby':['운동','뉴스보기','게임'],
            'goal':'보다 나은 세상',
            'like':{
                'food':['삼겹살','치킨','회','장어'],
                'device':['컴퓨터','스마트폰','에어컨'],
                'nation':['대한민국','중국','동남아시아']
            }},
            {'name':'박지숙','age':44,'address':'서울시 용산구 새창로 도원래미안',
            'job':'프리랜서강사','hobby':['리폼','고양이쳐다보기','책읽기','교안만들기'],
            'goal':'딸 대학보내기',
            'like':{
                'food':['잔치국수','삼겹삽','자몽','팥빙수','치킨'],
                'device':['노트북','건조기','블루투스 스피커'],
                'nation':['대한민국','베트남','스위스']
            }},
            {'name':'이정은', 'age':0, 'address':'서울시 광진구 능동 143',
            'job':'편집자', 'hobby':['연기', '노래', '영화', '책', '여행'],
            'goal':'나와 내 이웃이 행복하게 사는 것',
            'like':{
                'food':['치킨','엄마표 고추장찌개', '연어', '체리', '포도'],
                'device':['아이폰', '노트북', '에어팟'],
                'nation':['대한민국', '독일', '캐나다']
            }},
            {'name':'이영은','age':26,'address':'인천',
            'job':'회사원','goal':'찾는중?', 'hobby':['여행','독서','사진'],
            'like':{
                'food':['떡볶이','빵','치킨'],
                'device':['노트북','카메라','핸드폰'],
                'nation':['한국','미국','대만']
            }},
            {'name':'정수철', 'age':0, 'address':'서울시 노원구',
            'job':'회사원', 'hobby':['야구', '수영', '대화'],
            'goal':'스포츠타운',
            'like':{
                'food':['냉면', '참치', '장어', '고기'],
                'device':['자동차','거꾸리','자이글'],
                'nation':['대한민국','뉴질랜드','우즈벡']
            }},
            {'name':'황용훈', 'age':38, 'address':'서울시',
            'job':'디자이너','hobby':['골프','독서','미술'],
            'goal':'자유',
            'like':{
                'food':['한식','중식','일식','양식','분식'],
                'device':['맥','피씨','모바일'],
                'nation':['한국','중국','미국']
            }},
            {'name':'류혜림', 'age':30, 'address':'경기도 파주시 번영로55', 
            'hobby':['netflix','영화보기','산책'],
            'goal':'하고 싶은거 하기',
            'like':{
                'food':['회','초밥','해산물','제철음식','갈비','삼겹살','냉면'],
                'program':['포토샵','일러스트','인디자인'],
                'nation':['한국','캐나다','코스타리카','터키','멕시코']
            }},
            {'name': '조영민', 'age':37, 'address':'서울 노원구 노원로 186-15', 
            'job':'faculty', 'hobby':['요리', '기타'], 'goal':'농부', 
            'like': {
                'food':['국수', '통닭', '초밥', '피자'],
                'device':['Toyota Car', 'Mobile Phone'],
                'nation': ['미국','독일','일본','프랑스']
            }},
            {'name':'이재권','age':26,'address':'경기도 의정부시 흥선로 98-1',
            'job':'예비창업자','hobby':['영화감상','젬베','음악감상','오토바이'],
            'goal':'신속배달만 고려하는 이륜차 시장을 넘어 안전을 고려하는 이륜차 시장을 만드는 것',
            'like':{
                'food':['닭','인도커리','양고기','소고기','회','배','포도','꿔바로우'],
                'device':['오토바이','스마트폰','카메라'],
                'nation':['대한민국','미국','북한','일본','중국','몽골','러시아']
            }},
            {'name':'홍성준', 'age':27, 'address':'경기도 광명시 하안동 하안주공 1008동',
            'job':'대학생', 'hobby':['사진촬영','비디오게임'],
            'goal':'데이터 분석 및 시각화',
            'like':{
                'food':['김치찌개', '삼겹살', '꽃등심'],
                'device':['컴퓨터','플레이스테이션','카메라'],
                'nation':['대한민국','일본','미국']
            }},
            {'name': '김대성', 'age':28, 'address':'서울시 관악로 12길 ',
            'join':'엔지니어', 'hobby': ['야구', '재즈공연', '게임'],
            'goal':'무료 기술 학교',
            'like':{
                'food':['참치찌게', '된장찌개', '치킨', '라면', '삼겹살'],
                'device': ['컴퓨터', '에어프라이', '오토바이'],
                'nation':['대한민국', '네덜란드','영국'] 
            }},
            {'name':'이진주', 'age':0, 'address':'경기도 평택시', 
            'job':0, 'hobby': ['자전거 타기', '여행', '러닝', '풍선아트'], 'goal':'노마드 개발자', 
            'like':{
                'food':['김치찌개', '삼겹살', '마라탕', '호떡'],
                'device':['노트북', '인덕션', '와인따개'],
                'nation':['대한민국','덴마크','필리핀','중국']
            }},
            {'name':'황희진', 'age':25, 'address':'인천광역시 계양구', 'job':'직장인', 
            'hobby':['고양이랑놀기', '웹서핑', '맛집탐방'],
            'goal':'코딩하는마케터',
            'like':{
                'food':['카레','만두','빵'],
                'device':['에어프라이어','이북리더기','미니빔프로젝터'],
                'nation':['중국','베트남','스웨덴']
            }},
            {'name': '정재윤', 'age':0, 'address':'서울시 마포구',
            'job':'프리랜서','hobby':['축구','파이썬','코딩'],
            'goal' : '투자가',
            'like':{
                'food':['떡볶이','삼겹살','스테이크','쌀국수'],
                'device':['자전거', '킥보드', '드론'],
                'nation':['대한민국','중국','싱가폴']
            }},
            {'name':'김마야','age':29,'address':'서울시 마포구 서교동', 
            'job':'사업기획자', 'hobby': ['복싱','수제맥주품평','중드/영드감상'],
            'goal':'디지털 노마드',
            'like':{
                'food':['곱창구이','막창구이','곱창전골','훠궈','양꼬치','떡볶이'],
                'device':['mac book','iphone','미니빔'],
                'nation':['대한민국','네덜란드','중국','호주']
            }},
            {'name':'김현석', 'age':00, 'address':'경기도 광명시','job': '자영업', 
            'hobby':'자전거', 'goal': '건물주',
            'like': {
                'food' : ['삼겹살', '김치찌개','곱창'],
                'device' : ['자전거', '커피머신', '스마트폰'],
                'nation' : ['몰디브', '대한민국', '스위스']
            }},
            {'name':'박미지','age': 30, 'address':'서울시 관악구 신림동',
            'job':'없음', 'hobby':['게임', '독서', '영화감상'], 'goal' : '취업', 
            'like': { 
                'food':['회', '치킨', '국수','삼겹살'], 
                'device':['iphone','컴퓨터','ps4pro'],
                'nation':['대한민국','캐나다','영국']
            }},
            {'name':'정명석','age':26,'address':'서울 용산구',
            'job':'student','hobby':['영화보기','중국어 공부'],'goal':'창업',
            'like':{
                'food':['삼겹살','스시'],
                'device':['컴퓨터','폰'],
                'nation':['대한민국','중국']}}
        ],
    'advisor' : [
         {'name':'김민철', 'age':38, 'address':'서울시 구로구 구로동 1129번지',
        'job':'개발자', 'hobby':['기타', '피아노', '게임'], 
        'goal':'무료 기술 학교',
        'like': {
            'food':['참치찌게', '된장찌게', '치킨', '라면', '삼겹살'],
            'device':['컴퓨터', '에어프라이', '오토바이'],
            'nation':['대한민국','네델란드','영국']
        }},
        {'name':'최원미', 'age':21, 'address':'서울시 강북구',
        'job':'학생', 'hobby':['요가', '웹툰', '영화'], 
        'goal':'부자 되기',
        'like': {
            'food':['오므라이스', '치킨', '새우', '삼겹살'],
            'device':['imac', '전동휠','스마트폰'],
            'nation':['대한민국','중국','프랑스','스위스','LA']
        }},
        {'name':'권상윤', 'age':44, 'address':'경기도 용인시',
        'job':'개발자', 'hobby':['독서', '자전거', '비디오게임'], 
        'goal':'잘먹고 잘살기',
        'like': {
            'food':['설렁탕', '치킨', '순대국', '순두부찌개'],
            'device':['XBOX one', 'Cervelo R3','Brompton', 'AWOL', 'Playstation4', 'Switch'],
            'nation':['대한민국','싱가폴','캐나다','아이슬란드']
        }}
    ]  
}
#1. 사용자 이름으로 사용자 정보를 가져오는 함수.
def getUserWithName(name):
    members = di.get('member')
    for member in members:
        if(member.get('name') == name):
            return member
    return 'NONE'
#2. 취미를 검색해서 해당하는 사용자를 가져오는 함수.
def getUserWithHobby(hobby):
    result = []
    members = di.get('member')
    for member in members:    #회원 정보를 하나식 가져온다.
        for hob in member.get('hobby'): 
        #회원정보에서 취미를 가져온다(취미는 리스트로 구성되어있기 
        # 때문에 취미를 하나식 가져와 비교한다.)
            if(hob == hobby) :
                #입력 받은 취미가 있으면 결과 리스트에 회원을 추가한다.
                result.append(member)
                #해당 회원은 추가되었기 때문에 다음 사람으로 빠르게 넘어가기 
                #위해 break를 한다.
                break
    return result
if __name__ == '__main__':
    print(getUserWithName('정재윤'))
    print(getUserWithHobby('여행')
display.py
import member
#입력을 1(사용자 검색),2(취미 검색), 3(종료) 를 받는다. 
def getUserInput():
    uInput = input('1:사용자, 2:취미, 3:종료 : ')
    qustion = ''
    #1 -> 사용자 이름을 입력하세요 :
    #2 -> 취미를 입력하세요 : 
    if('1' == uInput) :
        qustion = '사용자 이름을 입력하세요 : '
    elif('2' == uInput) :
        qustion = '취미를 입력하세요 : '
    elif('3' == uInput) :
        return
    word = input(qustion)
    getUserInfo(uInput, word)
def getUserInfo(state, word):
    #개의 함수가 있다.
    if('1' == state) : #사용자 검색
       showResult(member.getUserWithName(word))
    elif('2' == state) : # 취미 검색 
        showResult(member.getUserWithHobby(word))
def showResult(result):
    if(len(result) == 0) :
        print('검색 결과가 없습니다.')
    else:
        print(result)
    getUserInput()

Last updated