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
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 정해진 범위 소수 찾기(Sieve of Erastosthenes알고리즘) (0) | 2022.12.29 |
---|---|
[파이썬] 문제 : 동전 전지기 10번, 앞면/뒷면 연속 나오는 위치 찾기 (0) | 2022.12.29 |
[파이썬] 문제 : 학년별 할인률 계산 (0) | 2022.12.29 |
[파이썬] 문제 : while 무한반복으로 입력된 정수들의 합 구하기 (0) | 2022.12.29 |
[파이썬] 문제 : for문 사용해 1~100사이의 정수 중 5의 배수 추출 (0) | 2022.12.29 |
댓글