SOCO

python - random모듈 choice 함수 본문

백/python

python - random모듈 choice 함수

ssooda 2021. 7. 13. 19:56

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으로 인식한다!

변수명으로 인식하지 못한다!