Python 실습 | 짝수 판별, 제품 재고 관리

2024. 12. 12. 17:16·Python
목차
  1. 문제 1. 짝수 판별하기 
  2. 문제 2. 제품 재고 관리1  
  3. 문제 3. 제품 재고 관리2  

 

문제 1. 짝수 판별하기 

  1. 출제의도
    • 조건문을 사용하고 출력함수를 사용할 수 있다.
  2. 배경
    • 당신은 간단한 조건문을 이용해서 숫자를 분별하려고합니다.
  3. 요구사항
    • 무작위 정수 n 이 주어집니다.
    • 변수 n 을 가지고 짝수인지 홀수인지 0인지 출력하는 파이썬 코드를 만드세요. 함수형이 아니여도 괜찮습니다.
    • 짝수는 2로 나누었을때 나누어 떨어지는 숫자입니다.
    • 홀수는 2로 나누었을때 나머지가 1이 남는 숫자 입니다.
    • n = 3, n= 2, n= 0 인 케이스 모두 3가지를 채점할 예정입니다.
  4. Skeleton Code
n = 3
'''
여기에 코드를 작성하세요
'''

5. 출력 예시

'''
이 숫자는 홀수 입니다.
'''

💡 문제 풀이 

n = 3
if n == 0:
print('이 숫자는 0입니다.')
elif n % 2 == 0:
print('이 숫자는 짝수입니다.')
elif n % 2 == 1:
print('이 숫자는 홀수입니다.')

 

오답노트

  • if문에서 첫 순서로 n % 2 == 0이 오면 뒤에 0에 대한 조건을 걸어도 짝수로 처리되기 때문에 맨 위에 0 조건을 씀

 

 

 


문제 2. 제품 재고 관리1  

  1. 출제의도
    • 리스트의 인덱스를 이해하고 원소에 접근할 수 있다.
    • 반복문과 리스트 자료형을 이용하여 기능을 구현할 수 있다.
    • print 내장함수에 변수를 포함시켜 출력할 수 있다.
  2. 배경
    • 당신은 소매점에서 근무하며 제품의 재고 관리를 담당하고 있습니다. 재고가 부족하거나 과잉인 제품을 식별하는 것이 중요합니다. 주어진 제품의 재고 데이터를 확인하여, 재고의 상태를 나타내는 파이썬 코드를 만드세요.
  3. 요구사항
    • inventory_list 리스트의 각 요소는 현재 재고비율 형식의 리스트입니다.
      • 예: [90, 60, 80]
      • 해석: 1번째 아이템은 90%, 2번째 아이템은 60%, 3번째 아이템은 80%의 재고가 남아있습니다.
    • 기준치 value를 받습니다. 기준치 이하면 재고가 부족한 것으로, 기준치 이상이면 재고가 과잉인 것으로 기준치와 같다면 적절한 것으로 간주합니다
    • 각 제품의 재고량이 주어진 기준치보다 많은지 적은지를 적절한지 판단합니다.
    • ex) 기준치를 80로 설정한다면 첫 번째 아이템은 과잉, 두 번째 아이템은 부족입니다, 세번째 아이템은 적절으로 출력하는 기능을 만듭니다.
  4. Skeleton Code
inventory_list = [90,60,80]
value = 80
'''
여기에 들어갈 코드를 작성하세요
'''

5. 출력 예시

'''
현재 기준 값은 80% 입니다.
1 번째 아이템 재고는 90% 로 과잉입니다.
2 번째 아이템 재고는 60% 로 부족합니다.
3 번째 아이템 재고는 80% 로 적절합니다.
'''

💡 문제 풀이 

처음 풀이

inventory_list = [90,60,80]
value = 80
print('현재 기준 값은',value,'%입니다.')
for index, i in enumerate(inventory_list,start=1):
if i > value:
print(index,'번째 아이템 재고는',i,'%로 과잉입니다.')
if i == value:
print(index,'번째 아이템 재고는',i,'%로 적절합니다.')
if i < value:
print(index,'번째 아이템 재고는',i,'%로 부족합니다.')

 

[복습] 더 나은 풀이

  • f string 사용
  • if문 3개 사용 -> if, elif, else
  • 출력될 문장이 비슷한 구조이니 만큼 새로운 변수 status를 생성하여 간단하게 관리
inventory_list = [90, 60, 80]
value = 80
print(f'현재 기준 값은 {value}%입니다.')
for index, stock in enumerate(inventory_list, start=1):
if stock > value:
status = "과잉"
elif stock < value:
status = "부족"
else:
status = "적절"
print(f'{index}번째 아이템 재고는 {stock}%로 {status}입니다.')

 

오답노트

  • 처음에 for 문에서 in 뒤에 [inventory_list]로 대괄호 안에 써서 에러남 →  for i in inventory_list
  • 그 다음엔 순서를 나타내려고 for j in range(1,n+1): 를 추가했다가 모든 경우의 수가 나옴
  • for문의 순서와 요소 값을 동시에 출력할 수 있는 enumerate 내장 함수가 있음!
  • 참고) enumerate 내장 함수
enumerate(iterable, start=0)
 

파이썬 코딩 도장: 22.3 반복문으로 리스트의 요소를 모두 출력하기

리스트에 인덱스를 지정하여 요소를 한 개씩 출력하기는 상당히 귀찮죠? 이번에는 리스트와 반복문을 사용하여 간단하게 모든 요소를 출력해보겠습니다. 22.3.1  for 반복문으로 요소 출력하기  

dojang.io

 


문제 3. 제품 재고 관리2  

  1. 출제의도
    • 함수를 만들 수 있다.
    • 딕셔너리 자료형 접근방법을 이해하며 메소드를 사용할 수 있다.
  2. 배경설명
    • 리스트 형태로 재고를 관리하다보니 재고품목 이름을 기록하지 못하는 문제가 있습니다. 이를 보완하기 위하여 딕셔너리 자료형을 이용해 관리하려고 합니다. 또한 함수형으로 만들어 재사용성을 보완하고자 합니다.
  3. 데이터 설명
  • inventory_dict 딕셔너리의 각 요소는 아이템이름과 수량비율로 표기합니다.
    • ex) {'Apple':90, 'Banana': 60, 'Orange': 80}
    • 해석: Apple은 90% 재고비율, Banna 는 60% 재고비율, Oragne는 80%의 재고비율을 가지고 있습니다.
  • maintain_inventory 는 재고품목과 재고비율을 전달하여 재고 관리를 도와주는 함수입니다.
  • 기능1) inventory_dict 딕셔너리는 재고품목, 재고비율을 전달하면 재고 비율을 업데이트합니다.
    • 기능 1-1) 존재하는 재고 품목이면 재고비율을 갱신합니다. 기존 품목을 업데이트했다고 알립니다.
    • 기능 1-2) 존재하지 않는 재고품목이면 새롭게 만들고 재고비율을 할당합니다. 새로운 재고가 들어왔다고 알립니다.
  • 기능2) 모든 재고품목과 재고비율을 출력합니다.

4. Skeleton Code

inventory_dict = {'Apple':90, 'Banana': 60, 'Orange': 80}
def maintain_inventory(data_dict, item, update):
'''
여기에 들어갈 코드를 작성하세요
'''
# 1. 기존 값 업데이트
maintain_inventory(inventory_dict, 'Apple', 50)
# 2. 새로운 품목이 들어옴
maintain_inventory(inventory_dict, 'Melon', 40)

5. 출력 예시

# 1. 기존 값 업데이트
maintain_inventory(inventory_dict, 'Apple', 50)
'''
기존 품목 Apple을 업데이트합니다.
현재 Apple 재고는 50% 있습니다.
현재 Banana 재고는 60% 있습니다.
현재 Orange 재고는 80% 있습니다.
'''
# 2. 새로운 품목이 들어옴
maintain_inventory(inventory_dict, 'Melon', 40)
'''
새로운 품목 Melon이 입고 되었습니다.
현재 Apple 재고는 50% 있습니다.
현재 Banana 재고는 60% 있습니다.
현재 Orange 재고는 80% 있습니다.
현재 Melon 재고는 40% 있습니다.
'''

💡 문제 풀이 

 처음 풀이

inventory_dict = {'Apple':90, 'Banana': 60, 'Orange': 80}
def maintain_inventory(data_dict, item, update):
if inventory_dict.get(item) == None : # get으로 딕셔너리에 키있는지 체크, 없으면 None으로 출력됨
print('새로운 품목',item,'이 입고되었습니다.')
inventory_dict[item] = update # 딕셔너리에 요소 추가: dict[key]=value
for key, value in inventory_dict.items(): # 딕셔너리에서 키,값 쌍으로 출력하려면 .items() 활용
print('현재 ',key,'재고는 ',value,'% 있습니다.')
else:
print('기존 품목',item,'을 업데이트합니다.')
inventory_dict[item] = update
for key, value in inventory_dict.items():
print('현재 ',key,'재고는 ',value,'% 있습니다.')
# 1. 기존 값 업데이트
maintain_inventory(inventory_dict, 'Apple', 50)
# 2. 새로운 품목이 들어옴
maintain_inventory(inventory_dict, 'Melon', 40)

 

[복습] 더 간단한 풀이

  • f string과 in을 활용
  • def에서 inventory_dict를 직접 지정하지 않고 data_dict로 정의해서 디버깅하기 좋게 변경
inventory_dict = {'Apple':90, 'Banana': 60, 'Orange': 80}
def maintain_inventory(data_dict, item, update):
if item in data_dict :
print(f'기존 품목 {item}을 업데이트합니다.')
else:
print(f'새로운 품목 {item}이 입고되었습니다.')
# 기존에 있든 없든 요소 추가/수정
data_dict[item]=update
for key, value in data_dict.items():
print(f'현재 {key} 재고는 {value}% 있습니다.')
# 1. 기존 값 업데이트
maintain_inventory(inventory_dict, 'Apple', 50)
# 2. 새로운 품목이 들어옴
maintain_inventory(inventory_dict, 'Melon', 40)

 

오답노트

  • 딕셔너리에 요소 추가: dict[key]=value
  • 딕셔너리에서 키,값 쌍으로 출력하려면 dict.items() 활용
 

파이썬 코딩 도장: 25.2 반복문으로 딕셔너리의 키-값 쌍을 모두 출력하기

이번에는 딕셔너리와 for 반복문을 사용하여 간단하게 모든 키-값 쌍을 출력해보겠습니다. >>> x = {'a': 10, 'b': 20, 'c': 30, 'd': 40} >>> for i in x: ...     print(i, end=' ') ... a b c d for i in x:처럼 for 반복문

dojang.io

  • 처음에 in으로 풀었다가 key값이 기존 딕셔너리에 없었던 melon에 대해 계속 '기존 품목'이라고 출력해서 get함수를 써서 key가 있는지 없는지( key 없을 시 None으로 출력됨) 체크했음. 근데~ 알고보니 in이 문제가 아니고 update를 if문 위에 써버려서 순서 상 먼저 추가되어서 그랬던 것이었다~ 는 반전
  • 참고) def함수
def 함수이름(매개변수):
함수의 내용
 

파이썬 함수 (def)

파이썬 함수는 특정 작업을 수행하는 코드 블록을 하나로 묶어주는 기능을 제공합니다. 함수를 사용하면 코드의 재사용성이 증가하고, 코드의 구조가 단순해지며, 유지 보수가 용이해집니다.

workauto.tistory.com

 

 

  1. 문제 1. 짝수 판별하기 
  2. 문제 2. 제품 재고 관리1  
  3. 문제 3. 제품 재고 관리2  
'Python' 카테고리의 다른 글
  • Python 공부 | 함수
  • Python 실습 | 이메일 유효성 검사
  • Python 공부 | 조건문(if, elif, else) 반복문(for, while)
  • Python 공부 | 튜플, 딕셔너리
초담
초담
4년차 마케터입니다
  • 초담
    그로스마케터의 기록
    초담
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (117)
      • Data Analytics Project (3)
      • SQL (55)
      • Python (43)
      • GA4 (0)
      • Tableau (8)
      • 아티클 스터디 (7)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
초담
Python 실습 | 짝수 판별, 제품 재고 관리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.