지도 교사: 김준오 선생님, 이은하 선생님 (정보과)
위 로드맵은 전체 30차시 파이썬 수업의 진행 과정을 시각화한 것입니다. 기초 프로그래밍부터 시작하여 점진적으로 심화 개념과 프로젝트로 진행됩니다.
목표: Thonny IDE를 설치하고 인터페이스를 이해하며 기본 출력("Hello, World")을 실습한다.
"Thonny IDE는 파이썬 초보자에게 최적화된 환경입니다. Thonny를 공식 웹사이트(https://thonny.org/)에서 설치한 후, 실행하면 좌측에 파일 탐색기, 우측에 코드 편집기와 콘솔이 보입니다. 메뉴바를 통해 실행, 저장, 디버깅 등의 기능을 사용할 수 있습니다."
기본 예시 (데모 코드):
print("Hello, World")
*– Thonny에서 Run 버튼을 누르면 콘솔에 "Hello, World"가 출력됩니다.*
단계 문제:
"여러분만의 인삿말(예: '안녕, Thonny!')을 출력해보세요."
해답 코드 및 설명:
print("안녕, Thonny!")
*– 여러분이 원하는 인삿말을 출력합니다.*
목표: 변수의 개념과 정수, 실수, 문자열 등의 데이터 타입을 이해한다.
"변수는 정보를 담는 작은 상자입니다. 예를 들어 '나이'나 '가격'처럼 여러분이 일상에서 사용하는 데이터를 저장할 수 있습니다."
기본 예시 (데모 코드):
age = 17
print(age)
단계 문제:
"자신의 나이를 변수에 저장하고 출력해보세요."
해답 코드 및 설명:
my_age = 18 # 본인의 나이로 수정
print(my_age)
*– 간단한 변수 할당과 출력입니다.*
목표: 변수 간 산술 연산을 수행하고 결과를 출력한다.
"오늘은 덧셈, 뺄셈, 곱셈, 나눗셈을 해보자. 여러분이 직접 계산기를 만드는 기초가 됩니다."
기본 예시 (데모 코드):
a = 5
b = 3
print(a + b)
*– 두 수의 덧셈 예시입니다.*
단계 문제:
"두 수의 뺄셈 결과를 출력해보세요."
해답 코드 및 설명:
a = 5
b = 3
print(a - b)
*– 두 수의 뺄셈 결과를 출력합니다.*
기본 예시 (데모 코드):
a = 10
b = 2
print(a * b)
단계 문제:
"나눗셈과 나머지 연산을 포함하는 코드를 작성해보세요."
해답 코드 및 설명:
a = 10
b = 3
print("나눗셈:", a / b)
print("나머지:", a % b)
*– 나눗셈(/)과 나머지(%) 연산을 사용합니다.*
기본 예시 (데모 코드):
num1 = float(input("첫 번째 숫자: "))
num2 = float(input("두 번째 숫자: "))
print("합계:", num1 + num2)
단계 문제:
"사칙연산(+, -, *, /)을 모두 수행하는 계산기 프로그램을 작성해보세요."
해답 코드 및 설명:
num1 = float(input("첫 번째 숫자: "))
num2 = float(input("두 번째 숫자: "))
print("더하기:", num1 + num2)
print("빼기:", num1 - num2)
print("곱하기:", num1 * num2)
print("나누기:", num1 / num2)
*– 모든 사칙연산을 차례대로 수행합니다.*
목표: if 조건문의 기본 구조와 실행 흐름을 이해한다.
"if문을 사용하면 조건이 참일 때만 특정 코드를 실행할 수 있습니다."
기본 예시 (데모 코드):
num = 15
if num > 10:
print("10보다 큽니다.")
단계 문제:
"숫자가 5보다 작으면 '5보다 작습니다'를 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
num = 3
if num < 5:
print("5보다 작습니다.")
*– if 조건이 참일 때 메시지가 출력됩니다.*
기본 예시 (데모 코드):
a = 8
b = 12
if a < b:
print("a는 b보다 작습니다.")
단계 문제:
"두 변수의 값 비교 후 큰 수를 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
a = 8
b = 12
if a > b:
print(a)
else:
print(b)
*– if-else를 사용하여 두 값 중 큰 값을 출력합니다.*
기본 예시 (데모 코드):
age = int(input("나이를 입력하세요: "))
if age >= 18:
print("성인입니다.")
else:
print("미성년자입니다.")
단계 문제:
"나이에 따라 '청소년', '성인', '중년', '노년'을 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
age = int(input("나이를 입력하세요: "))
if age < 18:
print("청소년")
elif age < 40:
print("성인")
elif age < 65:
print("중년")
else:
print("노년")
*– 조건문을 통해 여러 경우를 분기합니다.*
목표: if-else와 elif를 사용하여 다중 조건을 처리하는 방법을 배운다.
"여러 조건을 한 번에 처리할 수 있습니다. 복잡한 선택지를 구현해보세요!"
기본 예시 (데모 코드):
num = 0
if num >= 0:
print("양수입니다.")
else:
print("음수입니다.")
단계 문제:
"숫자가 0이면 '제로', 양수이면 '양수', 음수이면 '음수'를 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
num = int(input("숫자를 입력하세요: "))
if num > 0:
print("양수")
elif num < 0:
print("음수")
else:
print("제로")
*– if-elif-else로 세 경우를 처리합니다.*
기본 예시 (데모 코드):
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
else:
grade = "C"
print("등급:", grade)
단계 문제:
"학생 점수를 입력받아 90 이상은 'A', 80 이상은 'B', 70 이상은 'C', 그 외는 'F'를 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
score = int(input("점수를 입력하세요: "))
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "F"
print("등급:", grade)
*– 여러 조건문을 통해 등급을 결정합니다.*
기본 예시 (데모 코드):
temperature = float(input("현재 온도: "))
if temperature > 30:
print("더움")
elif temperature > 20:
print("적정")
elif temperature > 10:
print("선선함")
else:
print("추움")
단계 문제:
"사용자 입력 온도에 따라 '매우 더움', '약간 더움', '적정', '선선함', '매우 추움'을 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
temp = float(input("현재 온도를 입력하세요: "))
if temp > 35:
print("매우 더움")
elif temp > 30:
print("약간 더움")
elif temp > 20:
print("적정")
elif temp > 10:
print("선선함")
else:
print("매우 추움")
*– 조건을 더 세분화하여 날씨 상태를 출력합니다.*
목표: 함수를 정의하고 호출하는 방법을 익힌다.
"함수는 반복되는 작업을 효율적으로 처리하는 도구입니다. 마치 레시피와 같죠!"
기본 예시 (데모 코드):
def say_hello():
print("안녕하세요!")
say_hello()
단계 문제:
"자신만의 인사 메시지를 출력하는 함수를 작성해보세요."
해답 코드 및 설명:
def my_greeting():
print("안녕하세요, 여러분!")
my_greeting()
*– 함수 호출 시 인사 메시지를 출력합니다.*
기본 예시 (데모 코드):
def add(a, b):
return a + b
result = add(3, 4)
print("합계:", result)
단계 문제:
"두 숫자를 입력받아 곱셈 결과를 반환하는 함수를 작성해보세요."
해답 코드 및 설명:
def multiply(a, b):
return a * b
print("곱셈 결과:", multiply(3, 4))
*– 함수가 두 숫자의 곱셈 결과를 반환합니다.*
기본 예시 (데모 코드):
def calculate(a, b, operation):
if operation == "add":
return a + b
elif operation == "subtract":
return a - b
else:
return None
print(calculate(10, 5, "subtract"))
단계 문제:
"나눗셈과 곱셈 연산도 포함하는 함수를 작성해보세요."
해답 코드 및 설명:
def calculate(a, b, operation):
if operation == "add":
return a + b
elif operation == "subtract":
return a - b
elif operation == "multiply":
return a * b
elif operation == "divide":
return a / b
else:
return "잘못된 연산"
print(calculate(10, 5, "divide"))
*– 다양한 연산을 처리하는 함수를 구현했습니다.*
목표: 함수 내부의 지역 변수와 전역 변수의 차이를 이해한다.
"함수 안의 변수는 그 함수만의 비밀 상자이고, 전역 변수는 모두가 함께 사용하는 도구입니다."
기본 예시 (데모 코드):
def demo():
local_var = "나는 함수 내부 변수"
print(local_var)
demo()
단계 문제:
"함수 내에서 새로운 지역 변수를 만들어 출력해보세요."
해답 코드 및 설명:
def show_message():
msg = "지역 변수 예시"
print(msg)
show_message()
*– msg
라는 지역 변수를 생성하고 출력합니다.*
기본 예시 (데모 코드):
global_var = "전역 변수"
def demo():
print(global_var)
demo()
단계 문제:
"전역 변수와 지역 변수를 함께 사용해 전역 변수의 값을 변경하는 코드를 작성해보세요."
해답 코드 및 설명:
count = 10
def modify():
global count
count = 20
modify()
print(count)
*– 전역 변수 count
의 값을 함수 내에서 변경합니다.*
기본 예시 (데모 코드):
var = 10
def modify():
global var
var = 20
modify()
print(var)
단계 문제:
"두 개 이상의 함수를 사용해 전역 변수와 지역 변수가 혼합된 예제를 작성해보세요."
해답 코드 및 설명:
shared = 5
def increase():
global shared
shared += 5
def show():
print("현재 값:", shared)
increase()
show()
*– 한 함수에서 전역 변수를 수정하고, 다른 함수에서 출력합니다.*
목표: for 반복문의 기본 구조와 리스트, 문자열 순회를 익힌다.
"for문은 리스트나 문자열의 각 요소를 하나씩 처리합니다. 기본기를 다져봅시다."
기본 예시 (데모 코드):
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
*– 리스트 요소를 출력하는 기본 예제입니다.*
단계 문제:
"자신이 좋아하는 과일 목록을 리스트에 저장하고 출력해보세요."
해답 코드 및 설명:
my_fruits = ["딸기", "포도", "오렌지"]
for fruit in my_fruits:
print(fruit)
*– 리스트의 각 요소를 for문으로 출력합니다.*
기본 예시 (데모 코드):
word = "python"
for letter in word:
print(letter)
*– 문자열의 각 문자를 출력합니다.*
단계 문제:
"사용자로부터 입력받은 문자열을 한 글자씩 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
user_input = input("문자열을 입력하세요: ")
for ch in user_input:
print(ch)
*– 입력받은 문자열의 각 문자를 출력합니다.*
기본 예시 (데모 코드):
for i in range(1, 10):
print(f"구구단 2단: 2 x {i} = {2 * i}")
단계 문제:
"사용자로부터 원하는 단을 입력받아 해당 단의 구구단을 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
dan = int(input("몇 단을 출력할까요? "))
for i in range(1, 10):
print(f"{dan} x {i} = {dan * i}")
*– 사용자가 입력한 단에 대해 구구단을 출력합니다.*
목표: 중첩 for문과 다양한 컬렉션 순회 방법을 학습한다.
"중첩 for문을 사용하면 2차원 이상의 데이터를 쉽게 처리할 수 있습니다."
기본 예시 (데모 코드):
matrix = [[1, 2], [3, 4]]
for row in matrix:
for num in row:
print(num, end=" ")
print()
*– 2차원 리스트의 요소를 출력합니다.*
단계 문제:
"3x3 행렬을 만들어 모든 요소를 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for num in row:
print(num, end=" ")
print()
*– 중첩 for문으로 3x3 행렬의 각 요소를 출력합니다.*
기본 예시 (데모 코드):
for i in range(1, 6):
print("*" * i)
*– 증가하는 별 패턴 출력 예제입니다.*
단계 문제:
"별의 개수가 줄어드는 역방향 패턴을 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
for i in range(5, 0, -1):
print("*" * i)
*– 역순 range()를 사용하여 별 패턴을 출력합니다.*
기본 예시 (데모 코드):
matrix1 = [[1, 2], [3, 4]]
matrix2 = [[5, 6], [7, 8]]
result = [[0, 0], [0, 0]]
for i in range(2):
for j in range(2):
result[i][j] = matrix1[i][j] + matrix2[i][j]
print(result)
*– 두 행렬의 덧셈을 중첩 for문으로 구현합니다.*
단계 문제:
"3x3 행렬의 덧셈을 구현하는 코드를 작성해보세요."
해답 코드 및 설명:
matrix1 = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
matrix2 = [
[9, 8, 7],
[6, 5, 4],
[3, 2, 1]
]
result = []
for i in range(3):
row = []
for j in range(3):
row.append(matrix1[i][j] + matrix2[i][j])
result.append(row)
print(result)
*– 3x3 행렬의 각 요소를 더해 새로운 행렬을 만듭니다.*
목표: while 반복문의 기본 구조와 사용법을 익힌다.
"while문은 조건이 참인 동안 계속 반복합니다. 기본 예제를 통해 연습해봅시다."
기본 예시 (데모 코드):
i = 1
while i <= 5:
print(i)
i += 1
*– 1부터 5까지 출력합니다.*
단계 문제:
"1부터 10까지 출력하는 while 루프를 작성해보세요."
해답 코드 및 설명:
i = 1
while i <= 10:
print(i)
i += 1
*– while문으로 1부터 10까지 출력합니다.*
기본 예시 (데모 코드):
count = 0
while count < 3:
print("반복 중")
count += 1
*– 3회 반복 예제입니다.*
단계 문제:
"사용자가 입력한 횟수만큼 'Hello'를 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
times = int(input("몇 번 반복할까요? "))
count = 0
while count < times:
print("Hello")
count += 1
*– 사용자가 지정한 횟수만큼 반복합니다.*
기본 예시 (데모 코드):
while True:
data = input("종료하려면 '끝'을 입력하세요: ")
if data == "끝":
break
print("입력값:", data)
*– '끝' 입력 시 루프 종료.*
단계 문제:
"입력된 숫자가 0이면 종료하는 while 루프를 작성해보세요."
해답 코드 및 설명:
while True:
num = int(input("숫자를 입력하세요 (0이면 종료): "))
if num == 0:
break
print("입력된 숫자:", num)
*– 0 입력 시 종료됩니다.*
목표: 복잡한 조건과 탈출 조건을 포함한 while문을 작성한다.
"여러 조건을 활용하여 while문을 작성해보자!"
기본 예시 (데모 코드):
while True:
word = input("단어를 입력하세요 ('종료' 입력 시 종료): ")
if word == "종료":
break
print("입력:", word)
단계 문제:
"'끝'을 입력하면 종료하는 코드를 작성해보세요."
해답 코드 및 설명:
while True:
word = input("단어를 입력하세요 ('끝' 입력 시 종료): ")
if word == "끝":
break
print("입력:", word)
*– 종료 조건을 '끝'으로 설정합니다.*
기본 예시 (데모 코드):
total = 0
while True:
num = int(input("숫자 입력 (0 입력 시 종료): "))
if num == 0:
break
total += num
print("합계:", total)
단계 문제:
"입력받은 숫자들의 평균을 계산하는 코드를 작성해보세요."
해답 코드 및 설명:
total = 0
count = 0
while True:
num = int(input("숫자 입력 (0 입력 시 종료): "))
if num == 0:
break
total += num
count += 1
if count > 0:
print("평균:", total / count)
else:
print("입력된 숫자가 없습니다.")
*– 합계와 개수를 이용하여 평균을 계산합니다.*
기본 예시 (데모 코드):
while True:
data = input("데이터 입력 ('exit' 시 종료): ")
if len(data) > 10:
print("데이터가 너무 깁니다. 다시 입력하세요.")
continue
if data == "exit":
break
print("입력값:", data)
단계 문제:
"문자열 길이가 8자 이상이면 경고 메시지를 출력하고, '종료'를 입력하면 루프를 종료하는 코드를 작성해보세요."
해답 코드 및 설명:
while True:
data = input("문자열 입력 ('종료' 시 종료): ")
if len(data) >= 8:
print("경고: 문자열이 너무 깁니다!")
continue
if data == "종료":
break
print("입력값:", data)
*– 문자열 길이 조건과 종료 조건을 함께 처리합니다.*
목표: 조건문과 반복문을 결합하여 문제를 해결한다.
"조건문과 반복문의 조합으로 프로그램의 흐름을 제어할 수 있습니다."
기본 예시 (데모 코드):
for i in range(1, 6):
if i % 2 == 0:
print(i, "짝수")
단계 문제:
"1부터 10까지의 수 중 홀수와 짝수를 구분하여 출력해보세요."
해답 코드 및 설명:
for i in range(1, 11):
if i % 2 == 0:
print(i, "짝수")
else:
print(i, "홀수")
*– 조건문을 사용해 홀수와 짝수를 구분합니다.*
기본 예시 (데모 코드):
secret = 7
for i in range(1, 11):
if i == secret:
print("맞았습니다!")
break
else:
print("다시 시도하세요.")
단계 문제:
"사용자 입력을 받아 secret 숫자와 비교하는 숫자 맞추기 게임 코드를 작성해보세요."
해답 코드 및 설명:
secret = 7
guess = int(input("1부터 10 사이의 숫자를 추측하세요: "))
if guess == secret:
print("정답입니다!")
else:
print("오답입니다.")
*– 사용자 입력과 조건문을 활용하여 숫자 맞추기를 구현합니다.*
기본 예시 (데모 코드):
secret = 5
attempts = 0
while attempts < 3:
guess = int(input("숫자를 맞춰보세요: "))
if guess == secret:
print("정답!")
break
else:
print("오답!")
attempts += 1
else:
print("실패했습니다.")
단계 문제:
"시도 횟수를 늘리고, 입력된 숫자에 따라 '더 높게' 또는 '더 낮게' 힌트를 주는 게임을 작성해보세요."
해답 코드 및 설명:
secret = 5
attempts = 0
while attempts < 5:
guess = int(input("숫자를 맞춰보세요: "))
if guess == secret:
print("정답!")
break
elif guess < secret:
print("더 높은 수를 입력하세요.")
else:
print("더 낮은 수를 입력하세요.")
attempts += 1
else:
print("실패했습니다. 정답은", secret)
*– while문과 if-elif-else를 사용하여 게임 로직을 구현합니다.*
목표: 함수 내부에서 반복문을 사용하여 코드 재사용성을 높인다.
"함수 안에 반복문을 넣으면, 한 번 만든 코드를 여러 번 사용할 수 있습니다."
기본 예시 (데모 코드):
def print_list(items):
for item in items:
print(item)
print_list(["a", "b", "c"])
단계 문제:
"숫자 리스트를 받아 각 요소에 2를 곱해 출력하는 함수를 작성해보세요."
해답 코드 및 설명:
def multiply_list(numbers):
for num in numbers:
print(num * 2)
multiply_list([1, 2, 3])
*– 각 요소에 2를 곱하여 출력합니다.*
기본 예시 (데모 코드):
def greet_all(names):
for name in names:
print("안녕하세요, " + name + "님!")
greet_all(["민수", "지영"])
단계 문제:
"사용자 입력으로 받은 이름을 리스트에 추가한 후, 인사하는 함수를 작성해보세요."
해답 코드 및 설명:
names = []
for _ in range(2):
name = input("이름을 입력하세요: ")
names.append(name)
def greet_all(names):
for name in names:
print("안녕하세요, " + name + "님!")
greet_all(names)
*– 사용자 입력으로 리스트를 구성하고 인사합니다.*
기본 예시 (데모 코드):
def process_numbers(numbers, operation):
result = []
for num in numbers:
if operation == "square":
result.append(num ** 2)
elif operation == "cube":
result.append(num ** 3)
return result
print(process_numbers([1, 2, 3], "cube"))
단계 문제:
"여러 연산(예: 제곱, 세제곱, 반값)을 선택하여 처리하는 함수를 작성해보세요."
해답 코드 및 설명:
def process_numbers(numbers, operation):
result = []
for num in numbers:
if operation == "square":
result.append(num ** 2)
elif operation == "cube":
result.append(num ** 3)
elif operation == "half":
result.append(num / 2)
else:
result.append(num)
return result
print(process_numbers([2, 4, 6], "half"))
*– 조건문을 사용하여 다양한 연산을 적용합니다.*
목표: 함수 내부에서 조건문을 사용하여 분기 처리를 구현한다.
"함수 안에서 조건문을 사용하면, 상황에 따라 다른 동작을 수행할 수 있습니다."
기본 예시 (데모 코드):
def check_even(num):
if num % 2 == 0:
print("짝수입니다.")
else:
print("홀수입니다.")
check_even(4)
단계 문제:
"여러 숫자를 입력하여 각 숫자의 홀짝을 판단하는 함수를 작성해보세요."
해답 코드 및 설명:
def check_even(num):
if num % 2 == 0:
print(num, "은(는) 짝수입니다.")
else:
print(num, "은(는) 홀수입니다.")
for n in [3, 6, 9]:
check_even(n)
*– 리스트의 각 숫자에 대해 홀짝을 판단합니다.*
기본 예시 (데모 코드):
def grade(score):
if score >= 90:
return "A"
elif score >= 80:
return "B"
else:
return "C"
print(grade(85))
단계 문제:
"학생 점수를 입력받아 90 이상은 'A', 80 이상은 'B', 70 이상은 'C', 그 외는 'F'를 출력하는 함수를 작성해보세요."
해답 코드 및 설명:
def grade(score):
if score >= 90:
return "A"
elif score >= 80:
return "B"
elif score >= 70:
return "C"
else:
return "F"
score = int(input("점수를 입력하세요: "))
print("등급:", grade(score))
*– 조건문을 통해 등급을 결정합니다.*
기본 예시 (데모 코드):
def evaluate_exam(score, attendance):
if score >= 70 and attendance >= 80:
return "합격"
else:
return "불합격"
print(evaluate_exam(75, 85))
단계 문제:
"과제 제출 여부를 추가 조건으로 고려하여 합격 여부를 결정하는 함수를 작성해보세요."
해답 코드 및 설명:
def evaluate_exam(score, attendance, homework):
if score >= 70 and attendance >= 80 and homework:
return "합격"
else:
return "불합격"
print(evaluate_exam(75, 85, True))
*– 세 조건을 모두 고려하여 결과를 출력합니다.*
목표: for, while 반복문과 조건문을 복합적으로 활용하여 문제를 해결한다.
"여러 조건과 반복문을 함께 사용하면 복잡한 문제도 해결할 수 있습니다."
기본 예시 (데모 코드):
for i in range(1, 11):
if i % 2 == 0:
print(i, "짝수")
단계 문제:
"1부터 20까지의 수 중 홀수만 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
for i in range(1, 21):
if i % 2 != 0:
print(i, "홀수")
*– 홀수만 선택하여 출력합니다.*
기본 예시 (데모 코드):
total = 0
i = 1
while i <= 10:
if i % 2 == 0:
total += i
i += 1
print("짝수 합계:", total)
단계 문제:
"1부터 15까지의 홀수 합계를 계산하는 코드를 작성해보세요."
해답 코드 및 설명:
total = 0
i = 1
while i <= 15:
if i % 2 != 0:
total += i
i += 1
print("홀수 합계:", total)
*– while문과 조건문을 이용해 홀수의 합계를 구합니다.*
기본 예시 (데모 코드):
secret = 3
attempts = 0
while attempts < 5:
guess = int(input("숫자를 추측해보세요: "))
if guess == secret:
print("정답!")
break
else:
print("오답!")
attempts += 1
else:
print("실패: 정답은", secret)
단계 문제:
"시도 횟수를 늘리고, 입력된 숫자에 따라 '더 높게' 또는 '더 낮게' 힌트를 주는 게임을 작성해보세요."
해답 코드 및 설명:
secret = 3
attempts = 0
while attempts < 7:
guess = int(input("숫자를 추측하세요: "))
if guess == secret:
print("정답!")
break
elif guess < secret:
print("더 높은 수를 입력하세요.")
else:
print("더 낮은 수를 입력하세요.")
attempts += 1
else:
print("실패: 정답은", secret)
*– 조건문과 반복문으로 힌트를 추가해 게임을 개선합니다.*
목표: 지금까지 배운 내용을 활용하여 계산기 프로그램을 구현한다.
"실생활에서 유용한 계산기를 직접 만들어보자! 기본 연산을 수행하는 코드를 작성해봅니다."
기본 예시 (데모 코드):
def add(a, b):
return a + b
print("3 + 2 =", add(3, 2))
단계 문제:
"빼기 기능을 추가하여 두 수의 차이를 계산하는 함수를 작성해보세요."
해답 코드 및 설명:
def subtract(a, b):
return a - b
print("5 - 3 =", subtract(5, 3))
*– 뺄셈을 구현합니다.*
기본 예시 (데모 코드):
while True:
op = input("연산 입력 (+, -, 종료): ")
if op == "종료":
break
num1 = float(input("첫 번째 숫자: "))
num2 = float(input("두 번째 숫자: "))
if op == "+":
print("결과:", num1 + num2)
elif op == "-":
print("결과:", num1 - num2)
단계 문제:
"곱셈과 나눗셈 기능을 추가하여 계산기를 완성해보세요."
해답 코드 및 설명:
while True:
op = input("연산 입력 (+, -, *, /, 종료): ")
if op == "종료":
break
num1 = float(input("첫 번째 숫자: "))
num2 = float(input("두 번째 숫자: "))
if op == "+":
print("결과:", num1 + num2)
elif op == "-":
print("결과:", num1 - num2)
elif op == "*":
print("결과:", num1 * num2)
elif op == "/":
print("결과:", num1 / num2)
*– 다양한 연산을 지원합니다.*
기본 예시 (데모 코드):
def calculator():
while True:
op = input("연산 입력 (+, -, *, /, 종료): ")
if op == "종료":
break
try:
num1 = float(input("첫 번째 숫자: "))
num2 = float(input("두 번째 숫자: "))
if op == "+":
result = num1 + num2
elif op == "-":
result = num1 - num2
elif op == "*":
result = num1 * num2
elif op == "/":
result = num1 / num2
print("결과:", result)
except Exception as e:
print("오류 발생:", e)
calculator()
단계 문제:
"에러 처리를 강화하고, 0으로 나누는 등의 오류 발생 시 재시도를 유도하는 코드를 작성해보세요."
해답 코드 및 설명:
def calculator():
while True:
op = input("연산 입력 (+, -, *, /, 종료): ")
if op == "종료":
break
try:
num1 = float(input("첫 번째 숫자: "))
num2 = float(input("두 번째 숫자: "))
if op == "+":
result = num1 + num2
elif op == "-":
result = num1 - num2
elif op == "*":
result = num1 * num2
elif op == "/":
if num2 == 0:
print("0으로 나눌 수 없습니다. 다시 시도하세요.")
continue
result = num1 / num2
else:
print("알 수 없는 연산입니다.")
continue
print("결과:", result)
except Exception as e:
print("오류 발생:", e, "다시 시도하세요.")
calculator()
*– 에러 발생 시 적절한 메시지와 함께 재시도를 유도합니다.*
목표: 랜덤 숫자 생성과 조건문, 반복문을 활용하여 숫자 맞추기 게임을 구현한다.
"게임을 통해 코딩의 재미를 느껴보자. 실패해도 배우는 경험입니다!"
기본 예시 (데모 코드):
import random
secret = random.randint(1, 10)
guess = int(input("1~10 사이의 숫자를 맞춰보세요: "))
if guess == secret:
print("정답!")
else:
print("오답! 정답은", secret)
단계 문제:
"시도 횟수를 3회로 제한하는 숫자 맞추기 게임을 작성해보세요."
해답 코드 및 설명:
import random
secret = random.randint(1, 10)
attempts = 0
while attempts < 3:
guess = int(input("1~10 사이의 숫자를 추측하세요: "))
if guess == secret:
print("정답!")
break
else:
print("오답!")
attempts += 1
else:
print("실패: 정답은", secret)
*– while문으로 시도 횟수를 제한합니다.*
기본 예시 (데모 코드):
import random
secret = random.randint(1, 20)
attempts = 0
while attempts < 3:
guess = int(input("숫자를 추측해보세요: "))
if guess == secret:
print("정답!")
break
elif guess < secret:
print("더 높은 수를 입력하세요.")
else:
print("더 낮은 수를 입력하세요.")
attempts += 1
else:
print("실패: 정답은", secret)
*– 조건문을 사용해 힌트를 제공합니다.*
기본 예시 (데모 코드):
import random
secret = random.randint(1, 50)
attempts = 0
while attempts < 5:
guess = int(input("숫자를 맞춰보세요: "))
if guess == secret:
print("정답!")
break
elif guess < secret:
print("더 큰 수를 입력하세요.")
else:
print("더 작은 수를 입력하세요.")
attempts += 1
else:
print("실패: 정답은", secret)
단계 문제:
"게임 난이도를 선택하여, 난이도에 따라 시도 횟수와 숫자 범위를 조절하는 게임을 작성해보세요."
해답 코드 및 설명:
import random
difficulty = input("난이도를 선택하세요 (쉬움, 중간, 어려움): ")
if difficulty == "쉬움":
secret = random.randint(1, 10)
max_attempts = 5
elif difficulty == "중간":
secret = random.randint(1, 20)
max_attempts = 3
else:
secret = random.randint(1, 50)
max_attempts = 3
attempts = 0
while attempts < max_attempts:
guess = int(input("숫자를 추측하세요: "))
if guess == secret:
print("정답!")
break
elif guess < secret:
print("더 큰 수를 입력하세요.")
else:
print("더 작은 수를 입력하세요.")
attempts += 1
else:
print("실패: 정답은", secret)
*– 난이도 선택에 따라 게임의 범위와 시도 횟수를 조절합니다.*
목표: 리스트와 반복문, 조건문을 활용하여 데이터를 필터링하고 처리하는 방법을 학습한다.
"데이터 분석의 기초, 데이터를 다루어 의미 있는 정보를 뽑아봅시다!"
기본 예시 (데모 코드):
numbers = [1, 2, 3, 4, 5, 6]
for num in numbers:
if num % 2 == 0:
print(num)
*– 짝수만 출력하는 예제입니다.*
단계 문제:
"리스트에서 홀수만 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
numbers = [1, 2, 3, 4, 5, 6]
for num in numbers:
if num % 2 != 0:
print(num)
*– 홀수만 출력합니다.*
기본 예시 (데모 코드):
scores = [80, 90, 70, 85]
total = 0
for score in scores:
total += score
print("평균:", total / len(scores))
단계 문제:
"리스트의 합계와 평균을 함께 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
scores = [80, 90, 70, 85]
total = sum(scores)
average = total / len(scores)
print("합계:", total, "평균:", average)
*– 내장 함수 sum()과 len()을 사용합니다.*
기본 예시 (데모 코드):
def analyze(data):
total = sum(data)
average = total / len(data)
return {"total": total, "average": average}
print(analyze([10, 20, 30, 40]))
단계 문제:
"여러 함수를 사용하여 데이터 분석의 각 단계를 분리해 구현하는 코드를 작성해보세요."
해답 코드 및 설명:
def calculate_total(data):
return sum(data)
def calculate_average(data):
return sum(data) / len(data)
def analyze(data):
return {"total": calculate_total(data), "average": calculate_average(data)}
print(analyze([10, 20, 30, 40]))
*– 함수 분리를 통해 가독성을 높입니다.*
목표: 재귀 함수의 개념과 구현 방법을 이해한다.
"재귀 함수는 자기 자신을 호출하는 함수입니다. 조금 어렵지만 도전해보세요!"
기본 예시 (데모 코드):
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
print(factorial(5))
단계 문제:
"재귀를 이용해 1부터 n까지의 합을 계산하는 함수를 작성해보세요."
해답 코드 및 설명:
def recursive_sum(n):
if n == 1:
return 1
else:
return n + recursive_sum(n - 1)
print(recursive_sum(5))
*– 5까지의 합을 재귀적으로 계산합니다.*
기본 예시 (데모 코드):
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(6))
단계 문제:
"재귀를 사용해 피보나치 수열의 리스트(예: 첫 7개 수)를 생성하는 코드를 작성해보세요."
해답 코드 및 설명:
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
fib_sequence = [fibonacci(i) for i in range(7)]
print(fib_sequence)
*– 피보나치 수열 리스트를 생성합니다.*
기본 예시 (데모 코드):
def maze_solver(maze, pos):
if pos == len(maze)-1:
return True
return maze_solver(maze, pos+1)
maze = [0, 0, 0, 0]
print(maze_solver(maze, 0))
단계 문제:
"재귀를 이용해 리스트 내에서 특정 값의 위치를 찾는 함수를 작성해보세요."
해답 코드 및 설명:
def find_index(lst, target, index=0):
if index >= len(lst):
return -1
if lst[index] == target:
return index
return find_index(lst, target, index+1)
print(find_index([3, 5, 7, 9], 7))
*– 리스트 내 특정 값의 인덱스를 재귀적으로 찾습니다.*
목표: 지금까지 배운 개념(변수, 함수, 조건문, 반복문)을 모아 어드벤처 게임을 제작하고 발표한다.
"여러분, 이제까지 배운 걸 모아 자신만의 어드벤처 게임을 만들어보세요!"
기본 예시 (데모 코드):
print("어드벤처 게임 시작!")
choice = input("왼쪽(L) 또는 오른쪽(R) 선택: ")
if choice == "L":
print("왼쪽으로 갔습니다.")
else:
print("오른쪽으로 갔습니다.")
단계 문제:
"기본 선택지 외에 추가 선택지를 넣어 게임의 분기를 늘려보세요."
해답 코드 및 설명:
print("어드벤처 게임 시작!")
choice = input("왼쪽(L), 오른쪽(R), 또는 뒤로(B) 선택: ")
if choice == "L":
print("용을 만났습니다!")
elif choice == "R":
print("보물을 찾았습니다!")
elif choice == "B":
print("함정에 빠졌습니다!")
else:
print("잘못된 선택입니다.")
*– if-elif-else로 게임 분기를 구성합니다.*
목표: 에러 메시지를 해석하고 디버깅 및 에러 처리 기법을 익힌다.
"오류는 성장의 기회입니다. 에러 메시지를 읽고 문제를 해결해봅시다."
기본 예시 (데모 코드):
# 아래 코드는 문법 오류가 있습니다.
# print("Hello
단계 문제:
"에러 메시지를 보고 올바른 구문으로 수정해보세요."
해답 코드 및 설명:
print("Hello")
*– 문법 오류를 수정합니다.*
기본 예시 (데모 코드):
if True
print("참입니다")
단계 문제:
"if문의 구문을 올바르게 수정해보세요."
해답 코드 및 설명:
if True:
print("참입니다")
*– 콜론(:)을 추가합니다.*
기본 예시 (데모 코드):
def add(a, b):
return a + b
print(add(5))
단계 문제:
"함수 호출 시 인자 수를 올바르게 전달하도록 수정해보세요."
해답 코드 및 설명:
def add(a, b):
return a + b
print(add(5, 3))
*– 인자를 2개 전달해야 합니다.*
목표: 텍스트 파일에 데이터를 저장하고 읽어오는 방법을 익힌다.
"파일 입출력은 데이터를 영구 저장하는 방법입니다. 직접 실습해봅시다."
기본 예시 (데모 코드):
with open("example.txt", "w") as f:
f.write("Hello, File!")
with open("example.txt", "r") as f:
print(f.read())
단계 문제:
"자신이 좋아하는 문장을 파일에 저장하고 읽어오는 코드를 작성해보세요."
해답 코드 및 설명:
with open("my_text.txt", "w") as f:
f.write("나는 파이썬을 좋아해요!")
with open("my_text.txt", "r") as f:
print(f.read())
*– 파일에 쓰고 읽어오는 과정을 실습합니다.*
기본 예시 (데모 코드):
data = ["apple", "banana", "cherry"]
with open("fruits.txt", "w") as f:
for fruit in data:
f.write(fruit + "\n")
with open("fruits.txt", "r") as f:
print(f.read())
단계 문제:
"여러 줄 데이터를 파일에 저장한 후 각 줄을 읽어 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
data = ["line1", "line2", "line3"]
with open("lines.txt", "w") as f:
for line in data:
f.write(line + "\n")
with open("lines.txt", "r") as f:
for line in f:
print(line.strip())
*– 각 줄을 읽어 출력합니다.*
기본 예시 (데모 코드):
try:
with open("data.txt", "w") as f:
for i in range(5):
f.write(str(i) + "\n")
except Exception as e:
print("오류:", e)
단계 문제:
"파일 입출력 시 발생할 수 있는 오류를 처리하는 코드를 추가해보세요."
해답 코드 및 설명:
try:
with open("data.txt", "w") as f:
for i in range(5):
f.write(str(i) + "\n")
except IOError as e:
print("입출력 오류 발생:", e)
*– IOError를 사용해 오류를 처리합니다.*
목표: 파이썬 내장 모듈 및 외부 라이브러리를 사용하는 방법을 익힌다.
"모듈은 이미 만들어진 도구 상자입니다. 필요한 도구를 꺼내 써서 문제를 해결해보세요!"
기본 예시 (데모 코드):
import math
print(math.sqrt(16))
단계 문제:
"math 모듈을 사용하여 원의 넓이를 계산하는 코드를 작성해보세요. (반지름 입력)"
해답 코드 및 설명:
import math
radius = float(input("반지름을 입력하세요: "))
area = math.pi * radius ** 2
print("원의 넓이:", area)
*– math.pi와 제곱 연산을 활용합니다.*
기본 예시 (데모 코드):
import random
print(random.randint(1, 10))
단계 문제:
"자신만의 숫자 추첨 프로그램을 작성해보세요."
해답 코드 및 설명:
import random
draw = random.randint(1, 100)
print("추첨 결과:", draw)
*– random 모듈로 무작위 숫자를 생성합니다.*
기본 예시 (데모 코드):
import datetime
now = datetime.datetime.now()
print("현재 날짜와 시간:", now)
단계 문제:
"특정 날짜에서 10일 후의 날짜를 계산하는 코드를 작성해보세요."
해답 코드 및 설명:
import datetime
date_str = input("날짜를 YYYY-MM-DD 형식으로 입력하세요: ")
date_obj = datetime.datetime.strptime(date_str, "%Y-%m-%d")
new_date = date_obj + datetime.timedelta(days=10)
print("10일 후의 날짜:", new_date.strftime("%Y-%m-%d"))
*– datetime과 timedelta를 사용합니다.*
목표: 기본 정렬 및 검색 알고리즘의 원리를 이해하고 구현한다.
"알고리즘은 문제를 단계별로 해결하는 방법입니다. 차근차근 코드를 작성해보세요."
기본 예시 (데모 코드):
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
print(bubble_sort([5, 3, 8, 1]))
단계 문제:
"리스트를 오름차순 정렬하는 코드를 직접 작성해보세요."
해답 코드 및 설명:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
print(bubble_sort([10, 2, 33, 4, 5]))
*– 버블 정렬로 리스트를 정렬합니다.*
기본 예시 (데모 코드):
def linear_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1
print(linear_search([10, 20, 30, 40], 30))
단계 문제:
"리스트 내 특정 값의 존재 여부를 판단하는 코드를 작성해보세요."
해답 코드 및 설명:
def contains(arr, target):
for item in arr:
if item == target:
return True
return False
print(contains([1, 2, 3, 4], 3))
*– 선형 검색을 활용합니다.*
기본 예시 (데모 코드):
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
print(binary_search([1, 3, 5, 7, 9], 7))
단계 문제:
"이진 검색 알고리즘을 직접 구현해보세요."
해답 코드 및 설명:
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
print(binary_search([2, 4, 6, 8, 10], 8))
*– 이진 검색을 통해 정렬된 리스트에서 값을 찾습니다.*
목표: 파이썬의 기본 자료구조 사용법을 익힌다.
"자료구조는 데이터를 저장하고 관리하는 방법입니다. 리스트, 튜플, 딕셔너리를 사용해보세요."
기본 예시 (데모 코드):
fruits = ["apple", "banana", "cherry"]
print(fruits)
단계 문제:
"간단한 리스트를 만들어 출력해보세요."
해답 코드 및 설명:
my_list = ["사과", "바나나", "포도"]
print(my_list)
*– 리스트의 생성과 출력을 실습합니다.*
기본 예시 (데모 코드):
person = ("홍길동", 18)
print(person)
단계 문제:
"튜플을 사용하여 이름과 나이를 저장하고 출력해보세요."
해답 코드 및 설명:
person = ("김민수", 17)
print("이름:", person[0], "나이:", person[1])
*– 튜플의 인덱싱을 통해 데이터를 출력합니다.*
기본 예시 (데모 코드):
contacts = {"Alice": "010-1234-5678", "Bob": "010-8765-4321"}
print(contacts)
단계 문제:
"딕셔너리에 새로운 연락처를 추가하고, 특정 이름으로 검색하는 코드를 작성해보세요."
해답 코드 및 설명:
contacts = {"Alice": "010-1234-5678", "Bob": "010-8765-4321"}
contacts["Charlie"] = "010-1111-2222"
name = input("검색할 이름을 입력하세요: ")
if name in contacts:
print(name, "의 연락처:", contacts[name])
else:
print("연락처가 없습니다.")
*– 딕셔너리의 데이터 추가 및 검색을 구현합니다.*
목표: 앞서 배운 내용을 활용하여 데이터 분석 프로그램을 제작한다.
"데이터를 분석하여 의미 있는 정보를 추출하는 프로그램을 만들어봅니다."
기본 예시 (데모 코드):
data = [10, 20, 30, 40]
total = sum(data)
print("합계:", total)
단계 문제:
"리스트 데이터의 평균을 계산하는 코드를 작성해보세요."
해답 코드 및 설명:
data = [10, 20, 30, 40]
average = sum(data) / len(data)
print("평균:", average)
*– 평균을 계산합니다.*
기본 예시 (데모 코드):
data = [15, 25, 35, 45]
filtered = [x for x in data if x > 20]
print("필터링 결과:", filtered)
단계 문제:
"데이터를 조건에 따라 분류하여 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
data = [15, 25, 35, 45]
high = [x for x in data if x > 30]
low = [x for x in data if x <= 30]
print("30보다 큰 값:", high)
print("30 이하의 값:", low)
*– 리스트 컴프리헨션을 사용합니다.*
기본 예시 (데모 코드):
def analyze(data):
total = sum(data)
average = total / len(data)
return {"total": total, "average": average}
print(analyze([10, 20, 30, 40]))
단계 문제:
"여러 함수를 사용하여 데이터 분석의 각 단계를 분리해 구현하는 코드를 작성해보세요."
해답 코드 및 설명:
def calculate_total(data):
return sum(data)
def calculate_average(data):
return sum(data) / len(data)
def analyze(data):
return {"total": calculate_total(data), "average": calculate_average(data)}
print(analyze([10, 20, 30, 40]))
*– 함수 분리를 통해 모듈화합니다.*
목표: 사용자와 상호작용하는 텍스트 기반 프로그램을 구현한다.
"프로그램과 대화하듯 입력과 출력을 구현해봅시다."
기본 예시 (데모 코드):
name = input("이름을 입력하세요: ")
print("안녕하세요,", name)
단계 문제:
"입력받은 이름을 사용하여 맞춤형 인사말을 출력하는 코드를 작성해보세요."
해답 코드 및 설명:
name = input("이름을 입력하세요: ")
print("반갑습니다,", name, "님!")
*– 사용자 입력으로 인사말을 출력합니다.*
기본 예시 (데모 코드):
print("메뉴를 선택하세요:")
print("1. 게임 시작")
print("2. 설정")
choice = input("번호를 입력하세요: ")
if choice == "1":
print("게임을 시작합니다.")
elif choice == "2":
print("설정을 불러옵니다.")
else:
print("잘못된 선택입니다.")
단계 문제:
"메뉴 선택 후 하위 메뉴 기능을 추가하는 코드를 작성해보세요."
해답 코드 및 설명:
print("메인 메뉴:")
print("1. 게임 시작")
print("2. 설정")
main_choice = input("번호를 입력하세요: ")
if main_choice == "1":
print("게임 시작 메뉴:")
print("1. 새 게임")
print("2. 불러오기")
sub_choice = input("번호를 입력하세요: ")
if sub_choice == "1":
print("새 게임을 시작합니다.")
elif sub_choice == "2":
print("저장된 게임을 불러옵니다.")
elif main_choice == "2":
print("설정 메뉴: ...")
else:
print("잘못된 선택입니다.")
*– 메인 메뉴와 하위 메뉴를 조건문으로 구성합니다.*
목표: 자신만의 프로젝트 아이디어를 구상하고 설계한다.
"이제 직접 프로젝트를 설계할 시간입니다. 창의적인 아이디어를 구상해보세요."
기본 예시 (데모 코드):
# 예시: 간단한 계산기 프로젝트 설계
# 변수와 조건문을 활용하여 기본 로직을 구상합니다.
단계 문제:
"관심 있는 주제로 프로그램의 전체 흐름과 주요 기능을 목록으로 작성해보세요."
해답 코드 및 설명 (예시 답안):
# 계산기 프로젝트:
# 1. 사용자 입력 받기
# 2. 사칙연산 함수 작성
# 3. 결과 출력 및 에러 처리
*– 전체 흐름을 구상합니다.*
기본 예시 (데모 코드):
# 예시: 간단한 연락처 관리 프로그램 설계
# 함수를 활용하여 데이터 입력, 수정, 삭제 기능을 구상합니다.
단계 문제:
"프로젝트에 필요한 기능 목록과 플로우 차트를 작성해보세요."
해답 코드 및 설명 (예시 답안):
# 연락처 관리 프로그램:
# 1. 연락처 추가
# 2. 연락처 삭제
# 3. 검색 및 수정
# 4. 전체 목록 출력
*– 기능 목록을 도식화합니다.*
기본 예시 (데모 코드):
# 예시: 텍스트 기반 어드벤처 게임 설계
# 전체 플로우를 구성하고 각 모듈의 역할을 정의합니다.
단계 문제:
"자신만의 프로젝트 설계서를 작성하고, 각 모듈의 역할과 구현 계획을 구체적으로 작성해보세요."
해답 코드 및 설명 (예시 답안):
# 어드벤처 게임 설계서:
# - 시작 모듈: 게임 시작 및 초기 변수 설정
# - 선택 모듈: 사용자 입력에 따른 스토리 분기
# - 전투 모듈: 체력, 점수 계산
# - 종료 모듈: 게임 종료 및 결과 출력
*– 각 모듈의 역할을 도식화하여 작성합니다.*
목표: 설계한 프로젝트를 코드로 구현하고 테스트, 디버깅하여 완성도를 높인다.
"모든 것을 모아 프로젝트를 구현해보자. 오류를 수정하며 완성도를 높이는 과정이 중요합니다."
기본 예시 (데모 코드):
# 프로젝트 일부 모듈 구현 예시
def module_part():
print("모듈 기능 작동")
module_part()
단계 문제:
"자신의 프로젝트에서 한 모듈을 구현하고 테스트하는 코드를 작성해보세요."
해답 코드 및 설명 (예시 답안):
# 예시: 계산기 모듈
def add(a, b):
return a + b
print(add(2, 3))
*– 간단한 모듈 구현 및 테스트입니다.*
기본 예시 (데모 코드):
# 반복문과 조건문 결합 예제
def process_data(data):
result = []
for d in data:
if d > 0:
result.append(d)
return result
print(process_data([1, -2, 3, -4]))
단계 문제:
"여러 모듈을 결합하여 데이터를 처리하는 코드를 작성해보세요."
해답 코드 및 설명:
def filter_positive(data):
return [x for x in data if x > 0]
def calculate_sum(data):
return sum(data)
data = [1, -2, 3, -4, 5]
positive = filter_positive(data)
total = calculate_sum(positive)
print("양수 리스트:", positive)
print("합계:", total)
*– 모듈 결합을 통해 데이터를 처리합니다.*
기본 예시 (데모 코드):
# 전체 프로젝트 구현 후 디버깅 예시
def complete_project():
try:
# 프로젝트 전체 로직
print("프로젝트 실행 중...")
except Exception as e:
print("오류 발생:", e)
complete_project()
단계 문제:
"구현한 전체 프로젝트에서 발생하는 버그를 찾아 수정하고 개선하는 코드를 작성해보세요."
해답 코드 및 설명:
def complete_project():
try:
# 예시: 계산기 전체 기능 구현
a = float(input("첫 번째 숫자: "))
b = float(input("두 번째 숫자: "))
op = input("연산 입력 (+, -, *, /): ")
if op == "+":
result = a + b
elif op == "-":
result = a - b
elif op == "*":
result = a * b
elif op == "/":
if b == 0:
print("0으로 나눌 수 없습니다.")
return
result = a / b
else:
print("잘못된 연산")
return
print("결과:", result)
except Exception as e:
print("오류 발생:", e)
complete_project()
*– try-except로 오류를 처리하고 전체 로직을 구현합니다.*
목표: 최종 프로젝트 결과물을 발표하고, 전체 내용을 리뷰하며 개선점을 도출한다.
"최종 발표 시간입니다! 지금까지 배운 것을 자신 있게 발표하고, 서로 피드백하며 발전해봅시다."
기본 예시 (데모 코드):
# 간단한 프로젝트 데모 예시
print("최종 프로젝트 데모 시작")
# 주요 코드 부분 설명
단계 문제:
"자신이 구현한 프로젝트의 핵심 기능을 정리하여 발표 자료를 준비해보세요."
해답 코드 및 설명 (예시 답안):
# 예시 답안:
# 내 프로젝트는 텍스트 기반 어드벤처 게임입니다.
# 주요 기능: 사용자 입력에 따른 스토리 분기, 체력과 점수 관리
*– 발표 자료에 핵심 기능과 코드 역할을 정리합니다.*
"친구들, 오늘은 내가 배우고 느낀 것을 그대로 나누려고 합니다. 우리 함께 재미있게 코딩해봐요!"
"이 부분은 여러분의 생활과 잘 맞아요. 직접 써보면 이해될 거예요. 자신감을 가지고 도전해보세요!"