1번) 짝수 판별하기

내가 쓴 답 :
n = 3
if n == 0:
print('0입니다.')
elif n % 2 == 0:
print('이 숫자는 짝수 입니다.')
else:
print('이 숫자는 홀수 입니다.')
정답 :
n = 1
if n == 0:
print('0 입니다.')
elif n%2 == 0:
print('짝수입니다.')
else:
print('홀수입니다.')
2번) 제품 재고 관리

내가 쓴 답 :
inventory_list = [90,60,80]
value = 80
print('현재 기준 값은', value, '% 입니다.')
for index, i in enumerate(inventory_list):
# enumerate - 인덱스와 값 동시에 돌릴 때 사용
if i == value:
answer = '적절합니다.'
print(index+1, '번째 아이템 재고는', i, '%로', answer)
elif i > value:
answer = '과잉입니다.'
print(index+1, '번째 아이템 재고는', i, '%로', answer)
else:
answer = '부족합니다.'
print(index+1, '번째 아이템 재고는', i, '%로', answer)
정답 :
inventory_list = [90,60,80]
value = 80
print(f'현재 기준 값은 {value} 입니다.')
for i in range(len(inventory_list)): #리스트, 문자형, range(3)
if inventory_list[i] == value:
print(f'{i+1}번째 아이템 재고는 {inventory_list[i]}% 로 적절합니다.')
elif inventory_list[i] <= value:
print(f'{i+1}번째 아이템 재고는 {inventory_list[i]}% 로 부족합니다.')
else:
print(f'{i+1}번째 아이템 재고는 {inventory_list[i]}% 로 과잉입니다.')
- 프린트 방법
value = 80
print('현재 기준 값은', value ,'입니다.')
# f-string방법
print(f'현재 기준 값은 {value} 입니다.')
# 포매팅 방법
print('현재 기준 값은 {}입니다.'.format(value))
3번) 제품 재고 관리2

내가 쓴 답 :
inventory_dict = {'Apple': 90, 'Banana': 60, 'Orange': 80}
def maintain_inventory(data_dict, item, update):
if item in data_dict: # 아이템이 있는 경우
if data_dict[item] != update: # 아이템이 업데이트 값과 일치하지 않는 경우
data_dict[item] = update # 업데이트 값 변경
print('기존 품목', item, '을 업데이트합니다.')
else: # 기존 값과 같은 경우
print('현재', item, '재고는', update, '% 있습니다.')
else: # 아이템이 없는 경우
data_dict[item] = update # 새로운 아이템 추가
print('새로운 품목', item, '이 입고 되었습니다.')
for item, update in inventory_dict.items():
print('현재', item, '재고는', update, '% 있습니다.')
# 1. 기존 값 업데이트
maintain_inventory(inventory_dict, 'Apple', 50)
# 2. 새로운 품목이 들어옴
maintain_inventory(inventory_dict, 'Melon', 40)
정답 :
def maintain_inventory(inventory_dict, item, update):
# item= 'Melon'
# update = 40
if item in inventory_dict.keys():
print(f'기존 품목 {item} 을 업데이트합니다.')
else:
print(f'새로운 품목 {item} 을 입고되었습니다.')
inventory_dict[item] = update
for key,ratio in inventory_dict.items():
# print(key,ratio)
print(f'현재 {key} 재고는 {ratio}% 있습니다.')
- 나는 값 업데이트가 필요한 경우를 if 안에 또 if를 사용해서 집어넣었는데 튜터님은 밖으로 뺌 : 더 깔끔
4번) 이메일 유효성 검사

내가 쓴 답 :
email_list = [
"example@example.com", # 유효한 이메일
"yangbujang@email.co.kr", # 유효한 이메일
"iamhungry.com", # 틀린 이메일 -> @ 누락
"@da.com", # 틀린 이메일 -> ID 누락
"daislove@isnit", # 틀린 이메일 -> 도메인 잘못됨
]
def check_email(email_list):
for email in email_list:
domain = email.split('@')[-1] # @ 기준 뒷부분 추출
domainn = domain.split('.') # . 기준 끊기
if len(email.split('@')) == 1: # @ 없으면 끊기지 않았으니까 개수 1
print('유효하지 않은 이메일입니다:', email, '이유: @가 누락')
elif (email.split('@'))[0] == '': # @ 기준 앞이 공백인 경우
print('유효하지 않은 이메일입니다:', email, '이유: ID가 누락')
elif len(domainn) < 2 or not domainn[1].startswith('c'):
# domainn . 기준 나눈 두번째 문자열 앞글자 c가 아닌 경우
# 개수 조건 추가 안 하면 인덱스 오류남
print('유효하지 않은 이메일입니다:', email, '이유: 적절하지 않은 도메인')
else:
print('유효한 이메일입니다:', email)
check_email(email_list)
정답 :
email_list = [
"example@example.com", # 유효한 이메일
"yangbujang@email.co.kr", # 유효한 이메일
"iamhungry.com", # 틀린 이메일 -> @ 누락
"@da.com", # 틀린 이메일 -> ID 누락
"daislove@isnit", # 틀린 이메일 -> 도메인 잘못됨
]
def check_emai(email_list):
for email in email_list:
if '@' not in email:
print(f'유효하지 않은 이메일입니다. {email}, 이유: @가 누락')
continue
id_part, domain_part = email.split('@',1)
# print(id_part, domain_part)
#id누락
if not id_part: # if True/False
print(f'유효하지 않은 이메일입니다 {email} 이유: id 누락')
continue
# vaild_domain = ['.com','.co.kr']
#도메인검사
if domain_part.endswith('.com') or domain_part.endswith('.co.kr'):
pass
else:
print(f'유효하지 않은 이메일입니다 {email} 이유: 적절하지 않은 도메인')
continue
print(f'유효한 이메일입니다: {email}')
'Python > 문제' 카테고리의 다른 글
| 파이썬 | 한 번만 등장한 문자, 인덱스 바꾸기 (0) | 2025.01.09 |
|---|---|
| 파이썬 | 합성수 찾기, 문자열 정렬하기(1) (0) | 2025.01.08 |
| 파이썬 과제 (0) | 2025.01.08 |
| 파이썬 과제 (0) | 2025.01.06 |