🏢

4편 생선 회사를 운영하라

다루고 있는 개념
조건문
난이도
Type
강의
file
 

1. 캣의 생선 회사

notion imagenotion image
 
캣의 생선 가게는 어느새 마을에서 가장 유명한 생선 가게가 되었습니다. 장사가 잘 되어 기쁜 캣은 한편으로는 걱정이 되었습니다. 캣의 작은 가게는 불어난 손님을 다 수용하기에는 역부족이었기 때문입니다.
"바쁘다 바빠! 이젠 작은 생선가게에서 벗어날 때가 된 것 같다냥!"
캣은 작은 생선가게를 큰 생선회사로 업그레이드 시키기로 결심하였습니다.
"생선회사로 업그레이드! 체계적인 관리와 시스템으로 많은 돈을 벌어보겠다냥! 그 전에, 직원부터 뽑자냥!"
 

 
  • 라이캣의 상태창!
#[In] 이름 = '캣' 설명 = '위니브 월드 외각에 살고 있는 생선가게 주인 캣(cat)' 나이 = 17 오늘_잡은_물고기 = '10000' 키 = '45.7cm' 몸무게 = 1.4 육식 = True 초식 = True 돈 = 100000 훈장 = ['백상아리를 잡은 고양이', '성실한 납세자', '해골섬 낚시꾼'] 기술 = ['고기잡이', '고기팔기', '낚시_Lv3', '통발_Lv3', '큰그물_Lv3']
 
  • 라이캣의 기술 Update!
#[In] 기술[2] = 기술[2][:-1] + '3' 기술[3] = 기술[3][:-1] + '3' 기술[4] = 기술[4][:-1] + '3'
 

 

1.1 캣의 회사 운영

직원을 채용하기로 한 캣은 직원을 뽑을 때 성실성과 프로그래밍 능력을 보기로 합니다.
성실성이 80점 이상이고 프로그래밍 능력이 70점 이상일 경우에 합격입니다.
#[In] #캣의 직원 채용 성실성 = 85 프로그래밍능력 = 70 if 성실성 >= 80 and 프로그래밍능력 >= 70: print('합격입니다.')
위 코드를 실행하면 아래와 같이 출력됩니다.
 
#[Out] 합격입니다.
이처럼 조건을 판단하여 참일 경우에 해당 조건에 맞는 것을 실행하는 것을 if문이라고 합니다. 위 예제에서 조건문은 성실성 >= 80 and 프로그래밍능력 >= 70 입니다. 성실성은 85이고 프로그래밍능력은 70이므로 조건에 만족하여 print('합격입니다.') 가 실행됩니다.
 
생선 회사의 매출은 모두 손님 덕분! 보답하겠다냥!
직원 채용으로 차츰 안정되고 매출도 꾸준히 늘고있는 캣의 생선회사. 캣은 손님들을 향한 고마움을 '할인 제도'를 통해 보답하고자합니다.
"만원이상 구입하면 천원을 할인한다냥!"
#[In] #생선회사의 할인제도 # A등급:1000원, B등급:500원, C등급:100원 def 계산(a, b, c): 가격 = {'A등급':1000, 'B등급':500, 'C등급':100} 합계 = a*가격['A등급'] + b*가격['B등급'] + c*가격['C등급'] return 합계 총합 = 계산(10, 2, 3) if 총합 >= 10000: print('할인을 해주겠다냥!') print(f'총 {int(총합 * 0.9)}노드를 내면 된다냥!') #10% 할인
위 코드를 실행하면 아래와 같이 출력됩니다.
#[Out] 할인을 해주겠다냥! 총 10170노드를 내면 된다냥!
위 예제에서 함수 계산(a, b, c) 를 통해 총합을 구합니다. 조건문은 총합 >= 10000 으로 총합이 13000으로 10000 이상이므로 출력문이 실행됩니다.
이 취업난 시대에 한명의 청년이라도 더 고용하는 라이캣에게 훈장을 수여하도록 하겠습니다.
 
#[In] 훈장.append('청년 고용 착한 기업') 훈장.append('회사를 설립한 자')
 
 

1.2 if 문의 기본 구조

배운 내용을 if 문의 기본 구조를 통해 개념을 정리하고 넘어갑시다.
#if 문의 기본구조 if 조건문 : 수행할 문장 1 수행할 문장 2
조건문이 참이면 수행할 문장 1수행할 문장 2 를 수행합니다.
if 조건문 : 수행할 문장 1 수행할 문장 2
위의 if문에서는 조건문이 참일 경우에 수행할 문장 1 을 수행하고 수행할 문장 2if문 범위 밖에 있기 때문에 조건문에 상관없이 수행됩니다.
if True: print('True')
 
또한 위 예제 코드처럼 조건문에 직접 boolean 값(True, False)을 넣을 수도 있습니다.
 
  • if 문의 순서도(Flow Chart) : 수행할 문장 1, 2가 모두 if문에 들어있을 경우
notion imagenotion image
 

 

2. if, else 문

else 문은 if 문의 조건이 거짓일 경우에 실행됩니다. 아래 if, else 문의 기본 구조를 통해 알아봅시다.
#if,else문의 기본구조 if 조건문: 수행할 문장 1 수행할 문장 2 else: 수행할 문장 3 수행할 문장 4
if 문의 조건문을 확인해서 만약 이면 수행할 문장 1수행할 문장 2 를 수행하고, 조건이 거짓이면 else 문이 실행되어 수행할 문장 3수행할 문장 4 가 수행됩니다.
 
  • if, else 문의 순서도(Flow Chart)
notion imagenotion image
 
#[In] #캣의 직원 채용 성실성 = int(input('성실성을 입력하세요 :')) 프로그래밍능력 = int(input('프로그래밍능력을 입력하세요 :')) if 성실성 >= 80 and 프로그래밍능력 >= 70: print('합격입니다.') if 성실성 >= 90: print('보너스를 드립니다.') else: print('불합격입니다.')
위 코드를 실행하면 아래와 같이 출력됩니다.
#[Out] 성실성을 입력하세요 :80 프로그래밍능력을 입력하세요 :80 합격입니다.
위 예제에서는 성실성과 프로그래밍 능력을 input() 함수를 통해 입력받습니다.
if 문의 조건문을 만족할 경우 합격입니다. 가 출력됩니다. 조건문을 만족하지 못할 경우에는 else 문으로 넘어가 불합격입니다. 가 출력됩니다.
 
💡
input() 은 Python에서 입력을 받을 때 사용하는 함수이며, 입력받은 값을 int() 를 통해 정수형으로 변환할 수 있습니다.
이번에는 총합을 입력받고 else문을 추가하여 조건이 거짓일 경우에는 할인을 하지 않은 금액을 출력해 봅시다.
#[In] #생선회사의 할인제도 총합 = int(input('가격을 입력하세요 :')) if 총합 >= 10000: print('할인을 해주겠다냥!') print(f'총 {int(총합 * 0.9)}노드를 내면 된다냥!') #10% 할인 else: print(f'총 {총합}노드를 내면 된다냥!')
위 코드를 실행하면 아래와 같이 출력됩니다.
#[Out] # 1 가격을 입력하세요 :20000 할인해드립니다! 총 18000 원입니다. # 2 가격을 입력하세요 :9000 총 9000 원입니다.
위 예제에서는 총합을 입력받고 if 문에서 조건을 검사합니다. 총합이 10000 이상일 경우에는 if 문 다음 문장이 수행되고 거짓일 경우에는 else 문이 실행됩니다.
 

 

3. if, elif, else

#if,elif,else문의 기본구조 if 조건문1: 수행할 문장 1 수행할 문장 2 elif 조건문2: 수행할 문장 3 수행할 문장 4 else: 수행할 문장 5 수행할 문장 6
if 문에서 조건문을 확인해서 만약 참이면 수행할 문장 1수행할 문장 2 를 수행합니다. 그렇지 않고 거짓일 경우에는 elif 문의 조건문을 확인합니다. elif 문에서도 마찬가지로 조건문이 참일 경우에는 수행할 문장 3수행할 문장 4 를 수행하고 거짓이면 else 문이 실행됩니다.
 
  • if, elif, else문의 순서도(Flow Chart)
notion imagenotion image
이번에는 가격과 손님에게 받은 돈을 입력받아 작성해 봅시다.
#[In] # 거스름돈 가격 = int(input('가격을 입력하세요 :')) 받은돈 = int(input('받은돈을 입력하세요 :')) if 가격 < 받은돈: print('여기 거스름돈', 받은돈-가격, '원입니다.') elif 가격 > 받은돈: print(가격-받은돈, '원이 부족합니다.') else: print('감사합니다.')
위 코드를 실행하면 아래와 같이 출력됩니다.
#[Out] # 1 가격을 입력하세요 :9000 받은돈을 입력하세요 :10000 여기 거스름돈 1000 원입니다. # 2 가격을 입력하세요 :9000 받은돈을 입력하세요 :8000 1000 원이 부족합니다. # 3 가격을 입력하세요 :9000 받은돈을 입력하세요 :9000 감사합니다.
위 예제에서는 가격받은돈을 입력받아 둘의 값을 비교합니다. 가격보다 받은돈이 클 경우에는 받은돈-가격 의 연산 결과인 거스름돈을 출력하고, 작을 경우에는 돈이 부족하다는 문구를 출력합니다.
if 문과 elif 문의 조건이 모두 거짓일 경우 즉, 가격과 받은돈의 값이 같을 경우에는 "감사합니다."라고 출력합니다.
위에서 배운 내용을 가지고 할인 내역을 좀 더 세분화 해봅시다.
 
#[In] # A등급:1000원, B등급:500원, C등급:100원 def 계산(a, b, c): 가격 = {'A등급':1000, 'B등급':500, 'C등급':100} 합계 = a*가격['A등급'] + b*가격['B등급'] + c*가격['C등급'] return 합계 총합 = 계산(20, 2, 3) print(총합) if 총합 >= 20000: print('20% 할인을 해주겠다냥!') print(f'총 {int(총합 * 0.8)}노드를 내면 된다냥!') #20% 할인 elif 총합 >= 10000: print('10% 할인을 해주겠다냥!') print(f'총 {int(총합 * 0.9)}노드를 내면 된다냥!') #10% 할인 elif 총합 >= 5000: print('5% 할인을 해주겠다냥!') print(f'총 {int(총합 * 0.95)}노드를 내면 된다냥!') #5% 할인 else: print(f'총 {총합}노드를 내면 된다냥!')
 
위 코드의 실행 결과는 아래와 같습니다.
 
#[Out] 21300 20% 할인을 해주겠다냥! 총 17040노드를 내면 된다냥!