프로그램

[파이썬] 문제 : 상품명, 가격,수량 리스트 있을때 구매후 재고 출력

오디세이99 2022. 12. 5. 03:52
728x90
반응형

https://question99.tistory.com/446

 

[파이썬] 문제 : 2개의 튜플(리스트) 상품명, 가격이 있을때 상품명으로 가격 찾기

(문제) 파이썬 리스트 질문있습니다 list1 = ("과자", "초콜릿", "사탕") list2 = (1800, 1500, 1000) 이라고 했을 때 과자가 1800원, 초콜릿이 1500원, 사탕이 1000원인건데 최종 금액을 결제할 때 price = 원하는

question99.tistory.com

재고가 5개 씩 있고 원하는 수량만큼 구매하고 난 후 남은 재고 값 출력

 

list1 = ["과자", "초콜릿", "사탕"]            # 튜플()에서 리스트로 [] 변경. 빼기를 해야해서.
list2 = [1800, 1500, 1000]
list3 = [5, 5, 5]                             # 재고 수량


end_flag = False
while True:                                  # 잘 못 입력되었을때 다시 입력 할 수 있도록 반복 사용
    name = input(f"{list1} 중 원하는 상품을 입력하세요: ")   # 상품명 입력 받음
    cnt = int(input(f"{name} 구매 수량을 입력하세요: "))          # 구매수량 입력 받음
    if name in list1:                                       # 입력받은 상품명이 튜플에 있는지 확인
        while True:
            if cnt <= list3[list1.index(name)]:
                price = list2[list1.index(name)]      #  index를 사용해서 list1에 상품명에 데한 인덱스를 찾고 인덱스로 list2의 가격을 찾아옴
                list3[list1.index(name)] -= cnt
                print(f"{name}의 {cnt}개는 {price * cnt} 원입니다.")  # 출력
                print("="*30)
                print("= 재고리스트 =")
                for i in range(len(list1)):
                    print(f"({i+1}) {list1[i]} : {list2[i]} : {list3[i]}")
                print("="*30)
                end_flag = True
                break                                # 반복문 종료
            else:
                print(f"{name}의 수량이 부족합니다.")
        if end_flag == True:
            break
    else:                                        # list1에 입력 받은 상품명이 없으면
        print('상품명이 잘 못 입력되었습니다.')

728x90
반응형