SOCO
python - random모듈 choice 함수 본문
random모듈의 choice함수 : 아무 원소나 하나 뽑아주는 함수
문제
사용자가 원하는 음식 카테고리를 골라주면
그 중에서 랜덤으로 음식을 추천하는 프로그램!
카테고리
면류 : 짜장면, 라면, 파스타
밥류 : 볶음밥, 계란밥
육류 : 삼겹살, 소갈비살, 치킨
샐러드 : 치킨샐러드, 계란샐러드
시도1
#시도1
from random import *
noodles = ["짜장면", "라면", "파스타"]
rice = ["볶음밥", "계란밥"]
meat = ["삼겹살", "소갈비살" , "치킨"]
salad= ["치킨 샐러드", "계란 샐러드"]
choice = input("noodles, rice, meat, salad 중에 하나를 고르시오")
if choice == "rice" or "salad" :
num = randint(0,1)
print(choice[num])
else :
num = randint(0,2)
print(choice[num])
input한 내용을 리스트명으로 인식하길 바랬는데,
단순히 string으로 인식하는 문제 발생
noodles[1]의 경우 o가 print됨
시도2
from random import *
chocie = input("noodles, rice, meat, salad 중에 하나를 고르시오")
num1= randint(0,1)
num2= randint(0,2)
if choice == "noodles" :
print(noodles[num2])
elif choice =="rice" :
print(rice[num1])
elif choice =="meat" :
print(meat[num2])
else :
print(salad[num1])
작동이 되긴하는데 비효율적인 것 같음
모법답안
from random import choice
food_dict = {
"면류" : ["짜장면", "라면", "파스타"],
"밥류" : ["볶음밥", "계란밥"],
"육류" : ["삼겹살", "소갈비살", "치킨"],
"샐러드" : ["치킨 샐러드", "계란 샐러드"]
}
category = input("원하는 카테고리를 입력해주세요")
result = choice(food_dict[category])
print("음식추천:", result)
key : value로 이루어진 dictionary활용을 잘 해야할듯!
사용자에게 받는 input은 단순히 string으로 인식한다!
변수명으로 인식하지 못한다!
'백 > python' 카테고리의 다른 글
최대공약수 찾는 과정 (0) | 2021.07.22 |
---|---|
파이썬 코딩테스트 복습 (0) | 2021.07.21 |
vscode 터미널에서 바로 개발환경 설정하기 (0) | 2021.07.11 |
클래스 응용 (0) | 2021.07.09 |
클래스(객체, 메서드, 생성자, 상속, 메서드 오버라이딩, 클래스변수), 모듈, 패키지, 라이브러리 (0) | 2021.07.09 |