return : "함수"의 실행을 중단하고 return값 반환
break : break가 들어있는 가장 가까운 "반복문"의 실행을 중단
할인율을 설정할 때 if-elif-esle문을 사용했더니 중복된 코드가 많아서 한참을 고민했는데, 선생님처럼 할인율을 딕셔너리에 담아서 사용하니 간결해졌다.
자료구조를 이렇게 써먹는구나...😂
함수를 여러 개로 나눠서 다시 코드를 작성해보았다.
def checkGoods():
goods = []
while True:
inputNumber = int(input('1. 구매 2.종료 : '))
if inputNumber == 1:
price = int(input('가격 입력: '))
goods.append(price)
elif inputNumber == 2:
return goods
def totalPrice(goods):
totalPrice = 0
for price in goods:
totalPrice += price
return totalPrice
def discountRate(goods):
discountRate = 25
rates = {1: 5, 2: 10, 3: 15, 4: 20}
# 할인율 기본값 = 최대값으로 설정
if len(goods) in rates:
discountRate = rates[len(goods)]
return discountRate
def discountPrice(goods):
if len(goods) == 0:
print('장바구니에 상품이 없습니다.')
return
discountPrice = totalPrice(goods) * (1 - discountRate(goods) * 0.01)
return round(discountPrice)
goods = checkGoods()
print(f'개별 상품 가격: {goods}')
print(f'총액: {totalPrice(goods)}원')
print(f'할인율: {discountRate(goods)}%')
print(f'할인된 금액: {discountPrice(goods)}원')
import random
userNums = []
lottoNums = []
bonusNum = 0
matchedNums = []
# set: 값을 넣어줌
def setUserNums(inputNum):
global userNums
userNums = inputNum
# get: 값을 가져옴
def getUserNums():
return userNums
def setLottoNums():
global lottoNums
lottoNums = random.sample(range(1, 46), 6)
def getLottoNums():
return lottoNums
def setBonusNum():
global bonusNum
while True:
bonusNum = random.randint(1, 46)
if bonusNum not in lottoNums:
break
def getBonusNum():
return bonusNum
def lottoResult():
global userNums
global lottoNums
global matchedNums
# matchedNums = []
for num in userNums:
if num in lottoNums:
matchedNums.append(num)
if len(matchedNums) == 6:
print('1등 당첨')
print(f'{matchedNums}')
elif len(matchedNums) == 5 and (bonusNum in userNums):
print('2등 당첨')
print(f'{matchedNums}')
elif len(matchedNums) == 5:
print('3등 당첨')
print(f'{matchedNums}')
else:
print('당첨되지 않았습니다.')
print(f'나의 번호: {userNums}')
print(f'로또 번호: {lottoNums} + {bonusNum}')
print(f'일치한 번호: {matchedNums}')
def startLotto():
inputNums = []
for i in range(6):
inputNums.append(int(input('번호(1~45) 입력: ')))
setUserNums(inputNums)
setLottoNums()
setBonusNum()
lottoResult()
🚗 오늘은 모듈 문제풀이 강의만 수강했다.
수학 관련 문제는 기초수학 파트를 학습한 후 다시 풀어볼 것이다.
🚕 내일은 토요일이다.
평일에 수강하지 못한 파이썬 중급 문제풀이와 기초수학 강의를 들어야겠다.