320x100
728x90
사각형 넓이 구하기
# 사각형 넓이를 구하는 클래스 완성!
class Square:
def __init__(self):
self.square = int(input('넓이를 구하고 싶은 사각형의 숫자를 써주세요.\n 1.직사각형 2.평행사변형 3.사다리꼴 \n >>>'))
if self.square == 1:
print('직사각형 함수는 rect()입니다.') #Square 클래스에 rect() 메서드를 추가합니다.
elif self.square == 2:
print('평행사변형 함수는 par()입니다.') #Square 클래스에 par() 메서드를 추가합니다.
elif self.square == 3:
print('사다리꼴 함수는 trape()입니다.') #Square 클래스에 trape() 메서드를 추가합니다.
else:
print('1, 2, 3 중에서 다시 입력해주세요')
def rect(self): #직사각형의 넓이를 구하는 메서드
width, vertical = map(int, input('가로, 세로를 입력하세요. 예시 : 가로,세로\n >>>').split(',')) #가로,세로 입력
area = width * vertical #넓이를 구하는 식
result = '직사각형의 넓이는 : ' + str(area)
return result
def par(self): #평행사변형 넓이구하는 메서드
lower, height = map(int, input('밑변, 높이를 입력하세요. 예시 : 밑변,높이\n >>>').split(',')) # 밑변과 높이를 입력받음
area = lower * height # 평행사변형 넓이 계산
result = '평행사변형의 넓이는 : ' + str(area) # 결과 문자열 생성
return result # 결과 반환
def trape(self): # 사다리꼴의 넓이를 구하는 메서드
lower, upper, height = map(int, input('밑변, 윗변, 높이를 입력하세요. 예시 : 밑변,윗변,높이\n >>>').split(',')) # 윗변, 아랫변, 높이 입력받음
area = ((lower + upper) * height) / 2 # 사다리꼴 넓이 계산
result = '사다리꼴의 넓이는 : ' + str(area) # 결과 문자열 생성
return result
a = Square()
a.par()
a.trape()
(출처 : 모두연 파이썬강의 중)
키오스트 만들기
menu = ['americano', 'latte', 'mocha', 'yuza_tea', 'green_tea', 'choco_latte']
price = [2000, 3000, 3000, 2500, 2500, 3000]
# print(menu[3:], price[3:])
class Kiosk:
def __init__(self):
self.menu = menu # 메뉴 리스트
self.price = price # 가격 리스트
self.price_sum = 0 # 선택한 음료의 가격(초기값)
def menu_print(self):
for i in range(len(self.menu)): # 메뉴의 개수만큼 반복
print(i+1, self.menu[i], ' : ', self.price[i],'원') # 메뉴와 가격을 출력합니다.
# 주문
def menu_select(self):
print()
n = 0
while n < 1 or len(menu) < n:
n = int(input("음료의 번호를 입력하세요 : ")) # 음료 번호 입력
#메뉴판에 있는 음료 번호일때
if 1 <= n & n <= len(menu):
self.price_sum = self.price[n-1] # 선택 음료의 가격
# 메뉴에 없는 번호일때
else:
print("없는 메뉴입니다. 다시 주문해 주세요.")
# 음료 온도 물어보기
t = 0 # 기본값을 넣어주고
while t != 1 and t != 2: # 1이나 2를 입력할 때까지 물어보기
try:
t= int(input("HOT 음료는 1을, ICE 음료는 2를 입력하세요 : "))
if t == 1:
self.temp = "HOT"
elif t == 2:
self.temp = "ICE"
else:
print("1과 2 중 하나를 입력하세요.\n")
except ValueError:
print("숫자로 입력해주세요.\n")
print(f"{self.temp} {self.menu[n-1]} : {self.price_sum}원") # 온도 포함하여 출력
a = Kiosk() # 객체 생성
a.menu_print() # 메뉴 출력
a.menu_select()
(출처 : 모두연 파이썬강의 중)
추가주문 추가하기
menu = ['americano', 'latte', 'mocha', 'yuza_tea', 'green_tea', 'choco_latte']
price = [2000, 3000, 3000, 2500, 2500, 3000]
# print(menu[3:], price[3:])
class Kiosk:
def __init__(self):
self.menu = menu # 메뉴 리스트
self.price = price # 가격 리스트
self.price_sum = 0 # 선택한 음료의 가격(초기값)
self.order_menu = []
self.order_price = []
def menu_print(self):
for i in range(len(self.menu)): # 메뉴의 개수만큼 반복
print(i+1, self.menu[i], ' : ', self.price[i],'원') # 메뉴와 가격을 출력합니다.
# 주문
def menu_select(self):
while True: #추가 주문위한 반복
print("\n 음료를 선택하세요 (0 입력 시 주문 종료)")
n = int(input("음료의 번호를 입력하세요 : ")) # 음료 번호 입력
#주문 종료
if n == 0:
print("\n 주문이 완료되었습니다.")
break
#메뉴판에 있는 음료 번호일때
if 1 <= n & n <= len(menu):
self.price_sum = self.price[n-1] # 선택 음료의 가격
# 메뉴에 없는 번호일때
else:
print("없는 메뉴입니다. 다시 주문해 주세요.")
# 음료 온도 물어보기
t = 0 # 기본값을 넣어주고
while t != 1 and t != 2: # 1이나 2를 입력할 때까지 물어보기
try:
t= int(input("HOT 음료는 1을, ICE 음료는 2를 입력하세요 : "))
if t == 1:
self.temp = "HOT"
elif t == 2:
self.temp = "ICE"
else:
print("1과 2 중 하나를 입력하세요.\n")
except ValueError:
print("숫자로 입력해주세요.\n")
#주문 리스트에 추가
self.order_menu.append(self.temp + ' ' + self.menu[n-1])
self.order_price.append(self.price[n-1])
print(f"{self.temp} {self.menu[n-1]} : {self.price_sum}원 주문이 추가되었습니다.")
# 🔹 주문 내역 출력
print("\n 주문 내역")
for i in range(len(self.order_menu)):
print(f"{self.order_menu[i]} : {self.order_price[i]}원")
# 🔹 총 금액 출력
total_price = sum(self.order_price)
print(f"\n 총 결제 금액 : {total_price}원")
a = Kiosk() # 객체 생성
a.menu_print() # 메뉴 출력
a.menu_select()
(출처 : 모두연 파이썬강의 중)
print(f"{self.temp} {self.menu[n-1]} : {self.price_sum}원 주문이 추가되었습니다.")
설명
1. print(...)
- 출력 함수
- print()는 괄호 안의 문자열을 화면에 출력하는 역할을 합니다.
2. f"{...}" (f-string)
- Python의 문자열 포매팅 방식으로 {} 내부에 변수나 표현식을 넣으면 해당 값이 문자열 안에 삽입됨.
- 예를 들어:
name = "Alice" print(f"Hello, {name}!")
3. self.temp (음료 온도)
- 사용자가 선택한 **음료의 온도(HOT 또는 ICE)**를 저장한 변수.
- self.temp = "HOT" 또는 self.temp = "ICE"로 설정됨.
4. self.menu[n-1] (선택한 음료 이름)
- self.menu 리스트에서 사용자가 선택한 음료의 이름을 가져옴.
- n-1을 사용하는 이유:
- 사용자는 1부터 시작하는 메뉴 번호를 입력하지만,
- 리스트의 인덱스는 0부터 시작하기 때문.
- 예를 들어, 사용자가 n=2(2번 메뉴)를 선택하면 실제 리스트에서 가져올 값은 menu[1].
5. self.price_sum (선택한 음료 가격)
- 사용자가 선택한 음료의 가격을 저장하는 변수.
self.order_menu.append(self.temp + ' ' + self.menu[n-1])
설명
1. self.order_menu
- 사용자가 주문한 음료 목록을 저장하는 리스트.
- 사용자가 주문할 때마다 append()를 사용하여 새로운 항목을 추가함.
- 예: self.order_menu = [] # 빈 리스트 (처음에는 아무것도 없음)
2. .append(...)
- 리스트에 새로운 항목을 추가하는 함수.
- self.order_menu.append(새로운_값) → 리스트에 새로운_값을 추가함.
- 예:
my_list = [] my_list.append("apple") print(my_list) # 출력: ['apple']
3. self.temp (HOT 또는 ICE)
- 사용자가 선택한 **음료의 온도(HOT 또는 ICE)**를 저장한 변수.
- self.temp = "HOT" 또는 self.temp = "ICE"로 설정됨.
4. ' ' (공백 문자열)
- "HOT" + ' ' + "latte" → "HOT latte"
- "ICE" + ' ' + "mocha" → "ICE mocha"
- 두 개의 문자열 사이에 공백을 넣어 하나의 문자열로 합침.
5. self.menu[n-1] (음료 이름)
- self.menu 리스트에서 사용자가 선택한 음료의 이름을 가져옴.
- n-1을 사용하는 이유:
- 사용자는 1부터 시작하는 메뉴 번호를 입력하지만,
- 리스트의 인덱스는 0부터 시작하기 때문.
- 예를 들어, 사용자가 n=2(2번 메뉴)를 선택하면 실제 리스트에서 가져올 값은 menu[1].
주문표 출력추가
menu = ['americano', 'latte', 'mocha', 'yuza_tea', 'green_tea', 'choco_latte']
price = [2000, 3000, 3000, 2500, 2500, 3000]
class Kiosk:
def __init__(self):
self.menu = menu # 메뉴 리스트
self.price = price # 가격 리스트
self.price_sum = 0 # 선택한 음료의 가격(초기값)
self.order_menu = [] # 주문 리스트
self.order_price = [] # 가격 리스트
def menu_print(self):
"""메뉴 출력"""
print("\n 메뉴판")
for i in range(len(self.menu)):
print(f"{i+1}. {self.menu[i]} : {self.price[i]}원")
def menu_select(self):
"""음료 선택 및 주문 추가"""
while True:
print("\n 음료를 선택하세요 (0 입력 시 주문 종료)")
try:
n = int(input("음료의 번호를 입력하세요 : "))
except ValueError:
print(" 숫자로 입력해주세요.\n")
continue
# 주문 종료
if n == 0:
print("\n🛒 주문이 완료되었습니다.")
break
# 유효한 메뉴 선택 확인
if 1 <= n <= len(self.menu):
selected_menu = self.menu[n-1]
selected_price = self.price[n-1]
else:
print(" 없는 메뉴입니다. 다시 주문해 주세요.")
continue
# 음료 온도 선택
t = 0
while t not in [1, 2]:
try:
t = int(input("HOT 음료는 1을, ICE 음료는 2를 입력하세요 : "))
if t == 1:
temp = "HOT"
elif t == 2:
temp = "ICE"
else:
print(" 1과 2 중 하나를 입력하세요.\n")
except ValueError:
print(" 숫자로 입력해주세요.\n")
# 주문 리스트에 추가
'데이터 분석가:Applied Data Analytics > 파이썬' 카테고리의 다른 글
가상공간(가상 환경, Virtual Environment)의 개념 (1) | 2025.02.06 |
---|---|
파이썬으로 게임만들기 (0) | 2025.02.04 |
클래스(Class)와 객체(Object) (0) | 2025.01.31 |
전역 변수(Global variable), 모듈, 패키지, 라이브러리 (1) | 2025.01.24 |
이터레이터, 제너레이터, 데코레이터, 람다, 일급객체 (0) | 2025.01.23 |