학습 날짜: 2025.07.14 ~ 2025.07.18
이번 일지는 학부 때 파이썬 수업을 들은 적이 있어서, 기본 개념보다는 연습문제 중심으로 새롭게 알게 된 점이나 다시 되짚어보면 좋을 내용을 정리했다.
✅ break vs. continue vs. pass
- break
# for, while loop을 사용할 때, 우리는 종종 어떤 특정 조건에 부합되면,
# 반복을 완전히 종료하고 다음 코드를 수행해야 하는 경우가 발생합니다.
# 이런 경우 우리는 break 를 사용해서 반복문을 탈출할 수 있습니다.
# Qestion 1. clone
# 주어진 리스트(datas)에서 item을 순차적으로 검색하면서 item을 출력해 보세요.
# 단, item의 값이 홀수일 경우 for loop을 종료하세요.
# 짝수인지 홀수인지 구분하는 방법은 2로 나누었을 때, 나머지(reminder)가 0일 때 짝수이고,
# 0이 아닌 경우는 홀수 입니다.
# 나머지를 구할 때는 '%' 연산자를 사용합니다.
datas = [12, 16, 18, 2, 46, 14, 34, 47, 38, 40]
for data in datas:
if (data%2) == 0:
print(data, end=', ')
else:
# type code below:
break
- continue
# for, while loop을 사용할 때, 우리는 종종 어떤 특정 조건에 부합되면,
# 수행해야할 명령들이 있더라도, 그 명령들을 건너뛰어야 하는 경우가 있습니다.
# 이런 기능을 수행하는 명령어가 'continue' 입니다.
# continue는 그 아래의 코드를 무시하고 처음(for문 시작부분)으로 돌아가는 것
# Question 4.
# 주어진 리스트(datas)에서 item을 순차적으로 검색하면서 item을 출력해 보세요.
# 단, for loop을 사용하고, item의 값이 홀수일 경우, 해당 item을 출력하지 않습니다.
datas = [12, 16, 18, 2, 46, 14, 34, 47, 38, 40]
for data in datas:
if (data%2) != 0:
#type code here
continue
print(data, end=', ') # 홀수면 이 부분 건너뛰고 위로 올라감
- pass
# 만약 여러분이 if condtion: 의 정의만 하고, if의 body를 작성하지 않으면,
# "SyntaxError: unexpected EOF(End of File) ~ "와 같은 Erorr를 만나게 됩니다.
# 이 Error가 의미하는 것은 파이썬 인터프리터가 조건문의 끝을 찾지 못했다는 의미입니다.
# 이런 구문에러를 피할 수 있는 방법이 "pass"를 사용하는 것입니다.
# Question 6. clone - 'pass'
# 프로그램의 흐름에 따라 조건문이 필요해서 조건문의 정의를 구현했지만,
# 아직 조건문의 내부로직을 생각하지 않은 상황입니다.
# 이 때, "pass"를 사용해서 파이썬 인터프리터에게 정상적인 조건문이라는 것을 알려주는 것이 가능합니다.
# 다음과 같이 다양한 구문에 "pass"를 적용해보세요.
if 3>2:
# type code below:
pass
for i in range(3):
# type code below:
pass
def test_function():
# type code below:
pass
💡 Question1
- 재고물품 중 원산지가 제주도인 "배"의 재고개수는?
- 재고물품 중 원산지가 제주도이고 서귀포에서 나지 않는 "배"의 재고개수는?
- 재고물품 중 음료수의 전체 재고 개수는?
- 재고물품 중 포카리 음료수의 재고 개수를 10개로 수정하세요.
- 재고물품 중 과일 카테고리에서 "사과"의 재고관리 카테고리 "경남"을 생성하고, 개수를 10개로 넣어주세요.
- 재고물품 중 "시식코너"에서 "만두"의 재고개수를 2개로 수정하세요.
mart = {
"음료수": [["코카콜라", 2], ["사이다", 3], ["포카리", 5]], # 데이터 간 연관성이 없음
"시식코너": {"만두":10, "요거트":3}, # 데이터 간 연관성이 있음
"과일": {
"사과":{
"제주": 2,
"경북": 4,
"경기": 2
},
"배":{
"제주":{
"서귀포": 2,
"ow" : 4
},
"경북": 5,
"경기": 2
}
}
} # 이중 디렉토리
# 재고물품 중 원산지가 제주도인 "배"의 재고개수는?
print(sum(mart["과일"]["배"]["제주"].values()))
# 재고물품 중 원산지가 제주도이고 서귀포에서 나지 않는 "배"의 재고개수는?
print(mart["과일"]["배"]["제주"]['ow'])
# 재고물품 중 음료수의 전체 재고 개수는?
print(mart["음료수"][0][1]+mart["음료수"][1][1]+mart["음료수"][2][1])
# or
print(sum(i[1] for i in mart["음료수"]))
# 재고물품 중 포카리 음료수의 재고 개수는 10개로 수정하세요
mart["음료수"][2][1] = 10
print(mart["음료수"])
# 재고물품 중 과일 카테고리에서 "사과"의 재고관리 카테고리 "경남"을 생성하고, 개수는 10개로 넣어주세요.
mart["과일"]["사과"]["경남"] = 10
print(mart["과일"]["사과"])
# 재고물품 중 "시식코너"에서 "만두"의 재고개수를 2개로 수정하세요.
mart["시식코너"]["만두"] = 2
print(mart["시식코너"])
💡 Question2
- 계산기를 만들어보자
- 기능구현: 두 개의 수 입력 받음
- 그 후, 기능을 입력 받음(+, -, *, /)
- 위 기능은 각각 함수로 구현 -> 각각 +, -, *, / 를 함수로 만들라는 뜻
- 프로그램 종류를 위해서는 'end'를 입력받으면, 종료되게 만드세요
- 최소 5번을 돌아야 하며, 각 연산의 과정 결과는 "2+3=5" 이렇게 로그를 기록하세요
- 최종적으로 5번 수행 후, 기록된 로그를 출력하세요
- Ns-chart로 표현하기

def input_number():
num1, num2 = map(int, input("Enter two numbers: ").split())
return num1, num2
def nType():
f = input("Enter a function among +, -, *, /: ")
return f
def add(x, y):
return x + y
def diff(x, y):
return x - y
def mul(x, y):
return x * y
def div(x, y):
return x / y
nCount = 0
if __name__ == "__main__": #main-> 실행부, 다른 파일에서 import 될 때 자동 실행을 방지하기 위한 것
if nCount == 0:
logs = list()
elif nCount >= 5:
print(logs)
exit()
else:
pass
x, y = input_number()
f = nType()
if f == "+":
result = add(x, y)
elif f == "-":
result = diff(x, y)
elif f == "*":
result = mul(x, y)
elif f == "/":
result = div(x, y)
else:
print(logs)
exit()
nCount += 1
logs.append(f"{x} {f} {y} = {result}")
print(f"{x} {f} {y} = {result}")
💡 Question3
- 자판기를 설계해보자.
- input : 자판기에 넣는 금액(0~1만원)
- output : 거스름돈
- constrant : log 데이터로써, 자판기 실행 순번, 입력금액, 음료수종류, 잔금, 재고 리스트로 관리할것, 입력금액이 초과되면, 초과 메시지를 알려주고 종료
- 음료수 종류는 콜라 : 1400원, 환타 : 1100원, 사이다 : 900원
- Ns-chart로 표현하기

nCount = 0
items = {
"가격":{
"콜라": 1400,
"환타": 1100,
"사이다": 900
},
"재고":{
"콜라": 3,
"환타": 2,
"사이다": 3
}
}
if __name__ == "__main__":
if (nCount == 0):
logs = list()
else:
pass
money = int(input("돈을 넣어주세요(0~1만원): "))
if 0 < money <= 10000:
order = input("어떤 음료수를 구매하시나요? 콜라, 환타, 사이다: ")
if money >= items["가격"][order] and items["재고"][order] > 0:
exchange = money - items["가격"][order]
items["재고"][order] -= 1
remain = items["재고"][order]
nCount += 1
logs.append(f"횟수: {nCount}, 넣음 금액: {money}, 남은 금액: {exchange}, 주문 음료: {order}, 재고:{remain}")
elif items["재고"][order] == 0:
print("재고가 없습니다")
exit()
elif money < items["가격"][order]:
print("금액이 부족합니다")
exit()
else:
print("금액이 없거나 초과했습니다.")
exit()'LG U+ Why Not SW Camp 8기 > 학습 로그' 카테고리의 다른 글
| 공부 일지 #8 | Python Level Test (4) | 2025.07.23 |
|---|---|
| 공부 일지 #7 | mini-project; 가계부 만들기 (1) | 2025.07.22 |
| 공부 일지 #5 | Python의 동작 원리: 메모리 구조부터 NS-Chart까지 (2) | 2025.07.15 |
| 공부 일지 #4 | 리눅스 명령어 및 시스템 개념 정리 (3) | 2025.07.13 |
| 공부 일지 #3 | 네트워크의 흐름과 주요 개념 정리 (0) | 2025.07.13 |