파이썬을 익숙하게 다루기 위하여 자판기 알고리즘을 표현해보았습니다. 여기서 파이썬의 다양한 특징을 보았습니다.
딕셔너리(dict) 자료형
Goods = {'1.칠성사이다':900,'2.코카콜라':1200,'3.비타500':700,'4.몬스터':2000}
Goods_name=list(Goods.keys())
Goods_price=list(Goods.values())
c언어에서 그나마 비슷한 것이라고 하면 구조체 정도가 있습니다. (실제로 사용하는 것을 보면 많은 차이가 있다.) 파이썬의 딕셔너리 자료형은 key : value 이러한 구조로 이루어져 있으며 간단한 파이썬 내장 함수를 통하여 생성, 삭제, 응용을 할 수 있습니다. 제가 사용한 방법은 각각 배열 형태로 만들어 1대 1로 매칭 시키는 방법을 사용하였습니다
딕셔너리 자료형은 다음의 특징을 가집니다
- 중복을 허락하지만 이전것은 무시된다
- 순서를 가지지 않는다
이 딕셔너리 자료형을 사용한 이유는 (음료, 가격)이라는 한쌍을 만들기 위하여 사용하였습니다.
아래는 딕셔너리의 간단한 사용방법을 적어놓았습니다.
(딕셔너리 자료형의 활용, 추가, 제거, 초기화)
Goods = {'1.칠성사이다':900,'2.코카콜라':1200,'3.비타500':700,'4.몬스터':2000}
list(Goods.keys()) #전체 key값을 뽑아낸다.
list(Goods.values()) #전체 value값을 뽑아낸다
Goods['5.포카리스웨트'] = '1100'
#딕셔너리 자료형 추가방법 (포카리스웨트 추가)
del Goods['5.포카리스웨트']
#딕셔너리 자료형 제거방법 (포카리스웨트 제거)
Goods.clear() #모든 딕셔너리 자료형을 제거한다
알고리즘
알고리즘도로 표현하였으나 해당 설명이 이해가 안 되는 분들을 위해 설명하자면
자판기에 음료를 먹을 때 돈을 넣고 클릭하고 남은 돈은 정산 버튼을 눌러 정산하는 시스템입니다.
소스코드
#거스름돈 정산을 함수화 하였다
def sort(remain):
coin_500 = int(remain / 500)
coin_100 = int(remain % 500 / 100)
coin_50 = int(remain % 100 / 50)
coin_10 = int(remain % 50 / 10)
string = "거스름돈\n 500원 : %d\n 100원 : %d\n 50원 : %d\n 10원 : %d" % (coin_500,coin_100,coin_50,coin_10)
return string
#딕셔너리 자료형, 음료의 종류 및 가격을 표현하였다
Goods = {'1.칠성사이다':900,'2.코카콜라':1200,'3.비타500':700,'4.몬스터':2000}
Goods_name=list(Goods.keys())
Goods_price=list(Goods.values())
#자판기의 돈을 넣는 행위
Coin = int(input('동전을 넣어주세요>>'))
while 1 : #무한 반복
print(Goods)
print("현재잔액 : %d" % Coin)
Select = int(input('(0번을 누르면 환산입니다)\n원하는 제품을 선택하세요>>')) - 1
#배열의 숫자가 0부터 시작되어 사용하여서 -1을 사용한것이다
if Select == -1 : #0을 누를때 종료한다
break
elif Select >= 0 and Select <=3 : #정확한 값을 누를때 계산한다
Coin = Coin - Goods_price[Select]
if Coin<0 :
Coin = Coin + Goods_price[Select]
print("잔액이 부족합니다")
else :
print("%s 이(가) 나왔습니다" % Goods_name[Select])
else : #그이외의 값을 누를때 공지후 종료한다
print("\n해당숫자는 지원하지 않습니다\n")
break
print(sort(Coin)) #정산값 출력
'컴퓨터 > Python' 카테고리의 다른 글
Python (6) - 넘파이(NumPy)로 알아보는 배열 (0) | 2021.08.12 |
---|---|
Python (5) - 리스트(List) (0) | 2021.07.23 |
Python (4) - 로또를 만들어보자 (0) | 2021.07.17 |
Python (3) - set 자료형과 간단한 집합 (0) | 2021.07.13 |
Python (1) - 파이썬을 이용하여 매크로 만들기 (12) | 2021.01.08 |