데이터분석 기록일지

문제풀이/스파르타 - 파이썬 문제

[Python 과제] Lv2. 스파르타 자판기

야하루 2024. 5. 27. 17:35

스파르타 파이썬 퀴즈 2번째

drink = {'사이다':1700, '콜라':1900, '식혜': 2500, '솔의눈': 3000}

def vending_machine():
  for x,y in drink.items():
    print('\u2022',x,y,"원")
  print("-"*20)
  type_of_drink = input("음료를 선택해주세요: ")
  if type_of_drink in drink.keys():
    price = int(input("금액을 지불해 주세요: "))
    if price < drink[type_of_drink]:
      print('돈이 부족합니다.')
    else:
      print("거스름돈은", price - drink[type_of_drink],"원 입니다.")
  else:
    print('해당 음료가 없습니다.')
    pass

vending_machine()

실행결과

 

풀다가 if문 안에 price < drink[x]가 '<' not supported between instances of 'str' and 'int' 라는 에러가 자꾸 떠서 헤맸었다.

나는 딕셔너리에서 불러오는 drink[x]가 문제일거라 생각했지만, input을 int()로 바꿔주니까 해결.

print안에 글들은 넣는게 깔끔해 보여서 그냥 넣었당.

 

+) 다른분들 올린거 보니까 for 문으로 drink 딕셔너리 출력되게 하셨길래 나도 바꿨다.

원래 print안에 글로 썼었는데 생각해보니까 만약에 딕셔너리 값이 추가된다고 하면 for문이 효율적일 것 같아서..

그리고 옵션 보여줄 때 저 특수기호?를 넣고 싶어서 찾아보니까 유니코드 문자표라는게 있길래 넣어봤다.

 

- 유니코드 문자표

"\u+행의값(마지막 0 빼고) + 열의값 " 해주면 된다