당신은 소매점에서 근무하며 제품의 재고 관리를 담당하고 있습니다. 제품의 재고는 매주 갱신되며, 재고가 부족하거나 과잉인 제품을 식별하는 것이 중요합니다.
주어진 제품의 재고 데이터를 분석하여, 재고가 기준치 미안인 제품과 기준치 초과인 제품을 식별하는 프로그램을 작성하세요.
[['Apple', 30], ['Banana', 20], ['Orange', 50]]
check_inventory
로 작성하세요# 재고 데이터 예시
inventory_data = [
['Apple', 30],
['Banana', 20],
['Orange', 50]
]
#코드 예시
#기준치 20으로 판별하기
check_inventory(inventory_data, 20)
#문제 풀이
inventory_data = [
['Apple', 30],
['Banana', 20],
['Orange', 50],
['Strawberry', 25],
['Grape', 17],
['Melon', 42],
['Peach', 33],
['Kiwi', 39],
['Cherry', 48]
]
def check_inventory(inventory_data): #def 함수명 지정
lack_list = [] #재고가 부족한 제품 목록
excess_list = [] #재고가 과잉인 제품 목록
for fruit, quantity in inventory_data: #반복문 설정
if quantity < x: #수량이 기준치보다 적을 경우
lack_list.append(fruit) #재고부족 목록에 제품명 추가
elif quantity > x: #수량이 기준치보다 클 경우
excess_list.append(fruit) #재고과잉 목록에 추가
print('lack_list: ', list(lack_list))
print('excess_list: ', list(excess_list))
x = 25
check_inventory(inventory_data)
---------------------------------------------
x = 25를 삭제하고 싶다면 전달인자를 2개로 받자!
def check_inventory(inventory_data): 에 x를 추가하여,
def check_inventory(inventory_data, x): 로 변경하고,
check_inventory(inventory_data, (x=)22) x의 자리에 원하는 숫자를 넣으면
x의 값을 22로 계산한 결과가 출력된다!
---------------------------------------------
#제출 답안
def check_inventory(inventory_data, x):
lack_list = []
excess_list = []
for fruit, quantity in inventory_data:
if quantity < x:
lack_list.append(fruit)
elif quantity > x:
excess_list.append(fruit)
print('lack_list: ', list(lack_list))
print('excess_list: ', list(excess_list))
check_inventory(inventory_data, x)
당신은 회사의 고객 데이터베이스를 관리하고 있습니다. 데이터베이스에 저장된 고객의 이메일 주소가 유효한 형식을 갖추고 있는지 검증하는 작업이 필요합니다.
문자열 형태의 이메일 주소 목록을 분석하여, 각 이메일 주소가 올바른 형식을 갖추고 있는지 판단하는 프로그램을 작성하세요.
validate_emails
로 작성하세요.email_list = [
"example@example.com",
"wrongemail@.com",
"anotherexample.com",
"correct@email.co.uk"
]
def validate_emails(email_list):
for email in email_list:
# '@' 기호의 위치 확인
# '@' 기호가 없거나 맨 앞 또는 맨 뒤에 위치한 경우
if ~~~~ :
print(f"{email}: 유효하지 않은 이메일 주소입니다.")
continue
else:
print(f"{email}: 유효한 이메일 주소입니다.")
# 함수 호출
validate_emails(email_list)
------------------------------------------------------------
#답안
def validate_emails(email_list):
for email in email_list:
if '@' not in email or email.count('@') != 1:
print(f"{email} : 유효하지 않은 이메일 주소입니다.")
continue
else:
if email.startswith('@') or email.endswith('@'):
print(f"{email} : 유효하지 않은 이메일 주소입니다.")
continue
else:
user, domain = email.split('@')
if '.' not in domain or domain.startswith('.') or domain.endswith('.'):
print(f"{email} : 유효하지 않은 이메일 주소입니다.")
continue
else:
print(f"{email} : 유효한 이메일 주소입니다.")
email_list = [
"example@example.com",
"wrongemail@.com",
"anotherexample.com",
"correct@email.co.uk"
]
validate_emails(email_list)
for : email_list 중 email이
if1 : '@'기호가 없거나 1과 같지 않을 경우 (유효하지 않다 출력 / 진행)
if2 : '@'기호가 맨 앞에 있거나 맨 뒤에 있는 경우 (유효하지 않다 출력 / 진행)
else2 : '@'를 기준으로 user와 domain 분리
if3 : '.'이 없거나, '.'이 맨 앞 혹은 맨 뒤에 있는 경우 유효하지 않다 출력
else3 : 유효하다 출력
마라톤 대회에서 모든 선수가 경주를 완주하려 했지만, 한 명의 선수만이 완주하지 못했습니다. 주최측은 참가자 명단과 완주자 명단을 가지고 있으며, 누가 완주하지 못했는지 알아내야 합니다.
마라톤 참가자 명단과 완주자 명단이 주어졌을 때, 완주하지 못한 선수의 이름을 찾는 함수를 작성하세요.
participant
: 마라톤 참가자의 이름이 담긴 리스트completion
: 마라톤을 완주한 선수의 이름이 담긴 리스트find_non_completer
로 작성하세요# 예시 데이터
participant = ["mike", "lisa", "tom", "lisa"]
completion = ["tom", "mike", "lisa"]
---------------------------------------------------------
#답안
def find_non_completer(participant, completion):
participant_count = {}
for name in participant:
if name in participant_count:
participant_count[name] += 1
else:
participant_count[name] = 1
for name in completion:
participant_count[name] -= 1
for name, count in participant_count.items():
if count > 0:
return name
result = find_non_completer(participant, completion)
print("완주하지 못한 선수:", result)
participant_count : 참가자 명단에서 이름의 등장 횟수를 저장할 딕셔너리를 만든다.
1. for / if : 참가자 명단에서 이름의 등장 횟수를 기록한다.
2. for / if : 완주자 명단에서 이름의 등장 횟수를 뺀다.
3. for / if : 등장 횟수가 0보다 큰 선수의 이름을 return 한다.
당신은 소매점의 데이터 분석가로, 고객 데이터를 관리하는 시스템을 구축하려고 합니다. 각 고객의 이름, 이메일, 포인트 점수를 관리하고, 포인트 점수를 추가하거나 감소 시킬 수 있는 기능이 필요합니다.
Customer
클래스를 작성하여, 각 고객의 이름, 이메일, 포인트 점수를 관리하고, 포인트 점수를 추가하거나 감소 시키는 메소드를 구현하세요.
Customer
클래스는 고객의① 고객의 이름, ② 이메일, ③ 포인트 점수를 속성으로 가집니다.*join_customer**
: 고객의 이름, 이메일, 포인트를 설정합니다.add_points(amount)
: 주어진 양만큼 포인트 점수를 추가합니다.reduce_points(amount)
: 주어진 양만큼 포인트 점수를 감소시킵니다.Customer
클래스를 정의합니다.*join_customer
, add_points
*, reduce_points
메소드를 구현합니다.#확인코드
customer1 = Customer()
customer1.join_customer("Alice", "alice@example.com", 100)
customer1.add_points(50)
customer1.reduce_points(20)
customer1.reduce_points(150) # 포인트 부족 상황 테스트
class Customer:
def __init__(self, name, email, point):
self.name = name
self.email = email
self.point = point
c = Customer('JeongYejin', 'jyeden@gmail.com', 0)
def join_customer(self, name, email, point):
self.name = name
self.email = email
self.point = point
def add_points(self, amount):
self.point += amount
def reduce_points(self, amount):
if self.point - amount > 0:
self.point -= amount
else:
print("point : 0")
#확인코드
customer1 = Customer()
customer1.join_customer("Alice", "alice@example.com", 100)
customer1.add_points(50)
customer1.reduce_points(20)
customer1.reduce_points(150) # 포인트 부족 상황 테스트
---------------------------------------------------
#답안
class Customer:
def join_customer(self, name, email, point):
self.name = name
self.email = email
self.point = point
def add_points(self, amount):
self.point += amount
def reduce_points(self, amount):
if self.point - amount > 0:
self.point -= amount
else:
print("point : 0")