직접 값 바꾸기weekday를 2에서 1.5로 바꾸고 전체 시간이 어떻게 변하는지 확인하세요.
흔한 실수input() 결과를 바로 곱하거나 더하면 숫자가 아닌 문자열 방식으로 동작할 수 있습니다.
짧은 확인이 프로그램에서 float()가 필요한 이유는 무엇일까요?
02
변수: 값에 붙이는 의미 있는 이름
변수는 값을 기억하기 위해 붙이는 이름입니다. 등호 오른쪽 계산이 먼저 끝난 뒤 그 결과가 왼쪽 변수에 저장됩니다. score = score + 10은 기존 score 80을 꺼내 10을 더한 90을 다시 score에 저장합니다. 이름은 영문자나 밑줄로 시작하고 숫자를 뒤에 쓸 수 있지만, 2score처럼 숫자로 시작할 수 없습니다. 대소문자를 구분하며 score와 Score는 다른 이름입니다. if, for 같은 예약어는 Python 문법에 이미 쓰이므로 변수 이름으로 사용할 수 없습니다.
일상에서 보면내용물이 바뀌어도 같은 이름표를 붙인 상자를 계속 사용하는 모습입니다.
score = 80
score = score + 10
print(score)
실행 결과
90
한 줄씩 보기
score에 정수 80을 저장합니다.
오른쪽의 기존 score 80과 10을 먼저 더합니다.
계산 결과 90을 score에 다시 저장합니다.
현재 score인 90을 출력합니다.
직접 값 바꾸기bonus = 5를 만들고 score = score + bonus로 바꿔 보세요.
흔한 실수x, a처럼 뜻을 알기 어려운 이름보다 student_score처럼 역할이 드러나는 이름이 좋습니다.
짧은 확인student_score, 2score, for 중 사용할 수 있는 변수 이름은 무엇일까요?
03
기본 자료형: 값에도 종류가 있다
int는 소수점 없는 정수, float는 소수점이 있는 실수, str은 따옴표로 감싼 글자, bool은 True 또는 False, None은 아직 정해진 값이 없다는 뜻입니다. True의 첫 글자는 반드시 대문자입니다. list·tuple·dict·set처럼 여러 값을 담는 자료형도 있지만 이후 단원에서 자세히 배웁니다.
일상에서 보면숫자, 글자, 예·아니오, 빈칸을 서로 다른 서랍에 나누어 넣는 것과 같습니다.
age = 20
height = 175.5
name = '건우'
is_student = True
result = None
직접 값 바꾸기number_text를 int(number_text)로 감싼 뒤 더하면 어떤 결과가 되는지 확인하세요.
흔한 실수'나이: ' + age는 str과 int를 직접 더해 TypeError가 발생합니다.
짧은 확인'3' + '4'의 결과는 7일까요, '34'일까요?
06
형 변환: 필요한 종류로 바꾸기
int(), float(), str(), bool()은 값을 다른 자료형으로 바꿉니다. int('10'), float('3.14'), str(100)은 성공하지만 int('hello')와 int('3.14')는 정수 모양이 아니어서 ValueError가 발생합니다. bool()은 비어 있거나 0이면 False, 값이 있으면 True입니다. 따라서 문자열 'False'도 글자가 들어 있어 True입니다.
일상에서 보면내용을 다른 규격의 용기에 옮기되, 맞지 않는 모양은 옮길 수 없는 것과 같습니다.
직접 값 바꾸기int(float('3.14'))를 실행해 두 단계 변환 결과를 확인하세요.
흔한 실수int('3.14')는 바로 변환할 수 없어 ValueError가 납니다. 먼저 float로 바꿔야 합니다.
짧은 확인bool('')와 bool('False') 중 True가 되는 것은 무엇일까요?
07
사용자 입력: input()은 항상 문자열
input('안내 문구')는 사용자가 입력한 내용을 항상 str로 돌려줍니다. 숫자 계산 전 int()나 float()로 바꾸어야 합니다. number + number가 10 대신 55가 되는 이유는 입력 '5' 두 개가 문자열로 연결되기 때문입니다.
일상에서 보면입력 창은 무엇을 적든 우선 글자로 받아 적는 접수 창구입니다.
age_text = input('나이를 입력하세요: ')
age = int(age_text)
print(age + 1)
number = input('숫자: ')
print(number + number)
실행 결과
20을 입력하면 21
5를 입력하면 55
한 줄씩 보기
안내 문구를 보여 주고 입력을 age_text에 저장합니다.
int()로 정수 나이로 바꿉니다.
정수이므로 1을 더할 수 있습니다.
변환하지 않은 number는 두 문자열을 연결합니다.
직접 값 바꾸기마지막 줄을 print(int(number) + int(number))로 바꿔 보세요.
흔한 실수input()에 3.5를 입력하고 int()로 바로 바꾸면 ValueError가 납니다. 실수는 float()를 사용합니다.
짧은 확인나이에 1을 더하려면 input() 결과에 어떤 변환이 필요할까요?
08
출력 형식: print(), sep, end, f-string
print()는 값을 화면에 보여 줍니다. 쉼표로 여러 값을 전달하면 기본적으로 한 칸씩 띄웁니다. sep는 값 사이 문자를, end는 출력 마지막 문자를 정합니다. f-string은 변수와 문장을 가장 읽기 좋게 합치는 방법입니다.
일상에서 보면같은 정보도 표지판의 칸과 줄을 정리하면 훨씬 읽기 쉬워집니다.
name = '건우'
age = 20
print(name, age)
print(2026, 8, 3, sep='-')
print('Python', end=' ')
print('시작!')
print(f'{name}님은 {age}살입니다.')
실행 결과
건우 20
2026-8-3
Python 시작!
건우님은 20살입니다.
한 줄씩 보기
쉼표 출력은 값 사이에 공백을 둡니다.
sep='-'는 값 사이를 하이픈으로 연결합니다.
end=' '는 줄바꿈 대신 공백으로 끝냅니다.
다음 print가 같은 줄에 이어집니다.
직접 값 바꾸기sep를 '/'로, end를 ' → '로 바꾸어 실행하세요.
흔한 실수예상 출력과 공백·줄바꿈이 다르면 자동 채점에서 출력 형식 오류가 날 수 있습니다.
짧은 확인두 print 결과를 같은 줄에 이어 쓰려면 어떤 옵션을 쓸까요?
09
불리언: 참과 거짓을 저장하기
bool 자료형은 True와 False 두 값으로 판단 결과를 나타냅니다. 비교식도 bool 값을 만듭니다. True와 False는 첫 글자를 반드시 대문자로 씁니다. 다음 날 조건문에서 이 값을 이용해 실행할 코드를 고릅니다.
일상에서 보면신호등이 진행 가능과 정지를 알려 주는 두 가지 신호와 같습니다.
age = 20
is_adult = age >= 19
print(is_adult)
print(type(is_adult))
실행 결과
True
<class 'bool'>
한 줄씩 보기
age에 20을 저장합니다.
20이 19 이상인지 비교합니다.
비교 결과 True를 is_adult에 저장합니다.
직접 값 바꾸기age를 18로 바꾸고 결과를 다시 확인하세요.
흔한 실수true, false는 Python 불리언이 아니며 NameError가 발생합니다.
짧은 확인'True'와 True 중 비교 결과로 사용할 bool 값은 무엇인가요?
10
주석: 미래의 나와 동료를 위한 설명
# 뒤의 한 줄은 Python이 실행하지 않는 주석입니다. 코드 그대로를 번역하기보다 왜 그렇게 계산했는지 설명하는 주석이 유용합니다. '# total에 7을 곱한다'보다 '# 일주일은 7일이므로 주간 목표를 계산한다'가 더 좋은 주석입니다.
일상에서 보면레시피에서 '젓는다'보다 '덩어리가 생기지 않게 젓는다'가 더 도움이 되는 것과 같습니다.
daily_hours = 2
# 일주일은 7일이므로 주간 목표를 계산한다.
week_hours = daily_hours * 7
print(week_hours)
실행 결과
14
한 줄씩 보기
daily_hours에 하루 시간을 저장합니다.
# 뒤의 문장은 실행되지 않습니다.
계산 이유가 주석에 담겨 있습니다.
직접 값 바꾸기변수 이름만 읽어도 뜻이 드러나도록 week_hours를 사용해 보세요.
흔한 실수모든 줄을 그대로 한국어로 반복하는 주석은 코드 읽기를 오히려 방해합니다.
짧은 확인좋은 주석은 '무엇'보다 어떤 내용을 설명해야 할까요?
02-1 · 단계별 따라 하기
자기소개 출력기
이름, 나이, 하루 공부 시간을 입력받습니다.
숫자 입력을 알맞은 자료형으로 변환합니다.
일주일 목표를 계산합니다.
f-string으로 세 문장을 출력합니다.
name = input()
age = int(input())
daily_hours = float(input())
week_hours = daily_hours * 7
print(f'안녕하세요. 저는 {name}입니다.')
print(f'제 나이는 {age}살입니다.')
print(f'일주일 목표 공부 시간은 {week_hours}시간입니다.')
02-2 · 단계별 따라 하기
두 수 계산기
두 입력을 float로 변환합니다.
합, 차, 곱, 평균을 계산합니다.
레이블과 함께 네 줄로 출력합니다.
a = float(input())
b = float(input())
print(f'합: {a + b}')
print(f'차: {a - b}')
print(f'곱: {a * b}')
print(f'평균: {(a + b) / 2}')
03 · 개념 확인 · 20점
핵심을 확인해 볼까요?
8문항 중 6문항 이상 정답이면 완료됩니다. 오답 후에도 다시 제출할 수 있습니다.
16 · 오늘의 핵심 요약
값의 종류를 확인하고, 입력을 변환해 출력하세요.
변수는 오른쪽 계산 결과를 왼쪽 이름에 저장합니다.
int·float·str·bool·None은 서로 다른 종류의 값입니다.
input()은 항상 문자열이므로 숫자 계산 전 변환합니다.
f-string은 변수와 문장을 읽기 좋게 합칩니다.
오류 메시지는 실패가 아니라 수정 위치를 알려 주는 안내입니다.
Day 1 완료 조건개념 10개 확인따라 하기 2개 통과퀴즈 8개 중 6개 정답기본 3개 중 2개 통과오류 수정 1개 이상 통과총점 70점 이상