728x90
반응형
문제
파이썬 append를 사용해서 리스트를 만들어 푸는 문제입니다.
이 코드 좀 알려주세요.
문제
(리스트, 객체, 복잡한 루프) 재고품 관리를 하려고 한다. 사용자 입력은 다음과 같이 입력한다.
물건의 개수:
각 물건당 품명(문자열), 가격(정수), 개수(정수) 로 입력
품명:
가격:
개수:
비품이 떨어지지 않도록 비품을 3개 이상으로 유지한다고 할 때,
각각 사야할 비용과 가격, 총 비용을 계산해 출력하여라
class Shop: # 객체 선언
def __init__(self): # 클래스에서 인스턴스 생성시 항상 실행되는 초기화 Method
self.product = []
def add(self, name, price, cnt): # 물건단 품명, 가격, 개수 입력
self.product.append([name, price, cnt]) # 리스트의 append로 상품 추가
def show(self): # 전체 비품 목록 리스트 Method
print('[상품 목록]')
for i in range(len(self.product)):
print(f'[{i}] 품명={self.product[i][0]}, 단가={self.product[i][1]}, 수량={self.product[i][2]}')
def needProduct(self): # 비품이 3개 이상 유지하기 위해 3개 이하인 목록
idx = 0 # 목록의 순서를 위한 변수
buy_total = 0 # 3개 미만 품목의 총 비용 변수
print('[3개 이항 상품]')
for i in range(len(self.product)): # 복잡한 루프(?). 비품의 수 만큼 반복
if self.product[i][2] < 3: # 비품의 수가 3개 보다 작으면
idx += 1 # 비품 목록 Count
price = self.product[i][1] # 가격정보 가져오기
cnt = 3 - self.product[i][2] # 3개 이상을 유지하기 위해 최소 수량 계산
buy_total += cnt * price # 구입할 비용을 전체 비용에 더함
print(f'[{i}] 품명={self.product[i][0]}, 단가={self.product[i][1]}, 필요수량={cnt}, 필요금액={cnt * price}')
print(f"(총 구입 금액 = {buy_total})") # 전체 비용 출력
shop = Shop() # 상점의 인스탄스 선언.(인스턴스는 클래스가 설계도이고, 인트턴스는 실제 실행)
shop.add('콜라',110, 1) # 비품 추가
shop.add('오징어땅콘',210, 3)
shop.add('사이다',100, 4)
shop.add('사과',150, 2)
shop.show() # 비품전체 목록 출력 Method
shop.needProduct() # 3개 미만 비품 목록 및 총비용 출력
결과
[상품 목록]
[0] 품명=콜라, 단가=110, 수량=1
[1] 품명=오징어땅콘, 단가=210, 수량=3
[2] 품명=사이다, 단가=100, 수량=4
[3] 품명=사과, 단가=150, 수량=2
[3개 이항 상품]
[0] 품명=콜라, 단가=110, 필요수량=2, 필요금액=220
[3] 품명=사과, 단가=150, 필요수량=1, 필요금액=150
(총 구입 금액 = 370)728x90
반응형
'프로그램' 카테고리의 다른 글
| [파이썬] 문제 : 랜덤한 계좌번호 규정에 맞게 만들기 (0) | 2022.11.20 |
|---|---|
| [파이썬] 문제 : 학생 클래스 만들고, 출력하기 (0) | 2022.11.20 |
| [파이썬] 문제 : 두 문자열 혼합 (0) | 2022.11.20 |
| [파이썬] 문제 : 입력된 정수 리스트에서 작은수부터 이동(이동 후 삭제) (0) | 2022.11.20 |
| [파이썬] 문제 : 합집합,교집합,차집합,여집합 (0) | 2022.11.20 |
댓글