본문 바로가기
프로그램

[파이썬] 문제 : 과일 속성(단단한과일,물렁한과일 등)으로 과일 추천

by 오디세이99 2022. 12. 29.
728x90
반응형

(문제)

a="단단한 과일"
b= "물렁한 과일"
d="달콤한 맛"
e="새콤한 맛"
f="노란색"
g="빨간색"
 
c =input("당신이 선호하는 식감을 선택하세요. [ 단단한 과일, 물렁한 과일] :")
if c==a :
    input("어떤 맛을 선호하시나요? [달콤한 맛, 새콤한 맛]:")
else : 
    input("어떤 색을 좋아하시나요? [ 노란색, 빨간색] :")
 
list=["복숭아", "체리", "바나나", "딸기"]
 
-> 당신을 위한 추천 과일은 '  ' 입니다. 
여기에서, 특정한 값을 입력했을 때 (달콤한 맛, 노란색 등) 결과값으로 list 중 특정한 과일을 나오게 한다
 
 
(방법)
import pandas as pd


dic = pd.DataFrame(columns=range(4))    # 사전 pandas Dataframe으로 정의
dic.columns = ['name','c1', 'c2', 'c3'] # 컬럼은 2개. 영어, 한글. 한글은 여러개 뜻

dic.loc[len(dic)] = ['복숭아', 1, 0, 2] # 물렁한과일, 달콤한맛, 분홍색
dic.loc[len(dic)] = ['사과', 0, 1, 1]
dic.loc[len(dic)] = ['바나나', 1, 0, 0]


c1_lst = ["단단한 과일", "물렁한 과일"]  # 식감
c2_lst = ["달콤한 맛", "새콤한 맛"]      # 맛
c3_lst = ["노란색", "빨간색", '분홍색']  # 색

def noItem(lst):                # 리스트의 요소를 문자열로 만듬. ["달콤한 맛", "새콤한 맛"] => 1.달콤한 맛, 2.새콤한 맛
    rtn = ''
    for i, s in enumerate(lst): # enumerate는 인덱스와 값 돌려줌
        rtn += str(i+1)+'.' + s
        if i < len(lst):
            rtn += ', '
    return rtn

c1 = input(f'당신이 선호하는 식감을 선택하세요. [{noItem(c1_lst)}] :')
c2 = input(f'당신이 선호하는 맛을 선택하세요. [{noItem(c2_lst)}] :')
c3 = input(f'당신이 선호하는 색을 선택하세요. [{noItem(c3_lst)}] :')

result = dic[dic['c1'] == (int(c1)-1)][dic['c2'] == (int(c2)-1)][dic['c3'] == (int(c3)-1)]  # 조건을 찾음
name = result['name'][0]                                                                     # 이름만 추출
print(f'당신을 위한 추천 과일은 [{name}] 입니다.')

 

 

728x90
반응형

댓글