들어가며
파이썬 기초 문법은 모든 Python 프로그래밍의 토대입니다. 변수, 자료형, 연산자, 조건문, 반복문 등 기본 요소를 정확히 이해해야 이후의 고급 주제도 쉽게 따라갈 수 있습니다.
변수와 자료형
예제 1: 기본 변수와 타입
# 정수 (Integer)
age = 25
print(f"나이: {age}, 타입: {type(age)}")
# 실수 (Float)
height = 175.5
print(f"키: {height}, 타입: {type(height)}")
# 문자열 (String)
name = "Alice"
print(f"이름: {name}, 타입: {type(name)}")
# 불린 (Boolean)
is_student = True
print(f"학생 여부: {is_student}, 타입: {type(is_student)}")
출력:
나이: 25, 타입: <class 'int'>
키: 175.5, 타입: <class 'float'>
이름: Alice, 타입: <class 'str'>
학생 여부: True, 타입: <class 'bool'>
예제 2: 타입 변환
# 문자열을 정수로 변환
age_str = "30"
age_int = int(age_str)
print(f"변환 전: {age_str} ({type(age_str)})")
print(f"변환 후: {age_int} ({type(age_int)})")
# 정수를 문자열로 변환
score = 95
score_str = str(score)
print(f"변환 전: {score} ({type(score)})")
print(f"변환 후: {score_str} ({type(score_str)})")
# 실수 변환
price = float("19.99")
print(f"가격: {price} ({type(price)})")
출력:
변환 전: 30 (<class 'str'>)
변환 후: 30 (<class 'int'>)
변환 전: 95 (<class 'int'>)
변환 후: 95 (<class 'str'>)
가격: 19.99 (<class 'float'>)
연산자
예제 3: 산술 연산자
a = 10
b = 3
print(f"덧셈: {a} + {b} = {a + b}")
print(f"뺄셈: {a} - {b} = {a - b}")
print(f"곱셈: {a} * {b} = {a * b}")
print(f"나눗셈: {a} / {b} = {a / b:.2f}")
print(f"정수 나눗셈: {a} // {b} = {a // b}")
print(f"나머지: {a} % {b} = {a % b}")
print(f"거듭제곱: {a} ** {b} = {a ** b}")
출력:
덧셈: 10 + 3 = 13
뺄셈: 10 - 3 = 7
곱셈: 10 * 3 = 30
나눗셈: 10 / 3 = 3.33
정수 나눗셈: 10 // 3 = 3
나머지: 10 % 3 = 1
거듭제곱: 10 ** 3 = 1000
예제 4: 비교 연산자
x = 5
y = 8
print(f"{x} == {y}: {x == y}") # False
print(f"{x} != {y}: {x != y}") # True
print(f"{x} < {y}: {x < y}") # True
print(f"{x} > {y}: {x > y}") # False
print(f"{x} <= {y}: {x <= y}") # True
print(f"{x} >= {y}: {x >= y}") # False
출력:
5 == 8: False
5 != 8: True
5 < 8: True
5 > 8: False
5 <= 8: True
5 >= 8: False
조건문
예제 5: if-elif-else 기본
score = 85
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
else:
grade = 'F'
print(f"점수: {score}, 학점: {grade}")
출력:
점수: 85, 학점: B
예제 6: 논리 연산자 사용
age = 25
has_license = True
# and 연산자
if age >= 18 and has_license:
print("운전 가능합니다.")
# or 연산자
if age < 18 or not has_license:
print("운전할 수 없습니다.")
else:
print("운전할 수 있습니다.")
출력:
운전 가능합니다.
운전할 수 있습니다.
반복문
예제 7: for 루프 - 기초
# 범위 반복
print("1부터 5까지:")
for i in range(1, 6):
print(i, end=' ')
print()
# 리스트 반복
fruits = ["사과", "바나나", "딸기"]
print("\n과일 목록:")
for fruit in fruits:
print(f"- {fruit}")
출력:
1부터 5까지:
1 2 3 4 5
과일 목록:
- 사과
- 바나나
- 딸기
예제 8: while 루프
count = 0
while count < 5:
print(f"반복 {count + 1}")
count += 1
print("\n누적 합계 계산:")
total = 0
num = 1
while num <= 10:
total += num
num += 1
print(f"1부터 10까지의 합: {total}")
출력:
반복 1
반복 2
반복 3
반복 4
반복 5
누적 합계 계산:
1부터 10까지의 합: 55
예제 9: break와 continue
# break 사용
print("break 예제:")
for i in range(10):
if i == 5:
break
print(i, end=' ')
print("\n\ncontinue 예제:")
# continue 사용
for i in range(10):
if i % 2 == 0:
continue
print(i, end=' ')
print()
출력:
break 예제:
0 1 2 3 4
continue 예제:
1 3 5 7 9
문자열 조작
예제 10: 문자열 기본 연산
s1 = "Hello"
s2 = "Python"
# 연결 (Concatenation)
full = s1 + " " + s2
print(f"연결: {full}")
# 반복
print(f"반복: {'Ha' * 3}")
# 길이
print(f"길이: {len(full)}")
# 인덱싱
print(f"첫 글자: {full[0]}")
print(f"마지막 글자: {full[-1]}")
# 슬라이싱
print(f"부분 문자열: {full[0:5]}")
출력:
연결: Hello Python
반복: HaHaHa
길이: 11
첫 글자: H
마지막 글자: n
부분 문자열: Hello
예제 11: 문자열 메서드
text = "Python Programming"
print(f"원본: {text}")
print(f"소문자: {text.lower()}")
print(f"대문자: {text.upper()}")
print(f"시작 문자 확인: {text.startswith('Python')}")
print(f"포함 확인: {'Program' in text}")
print(f"교체: {text.replace('Python', 'JavaScript')}")
print(f"나누기: {text.split()}")
출력:
원본: Python Programming
소문자: python programming
대문자: PYTHON PROGRAMMING
시작 문자 확인: True
포함 확인: True
교체: JavaScript Programming
나누기: ['Python', 'Programming']
흔한 실수와 해결책
실수 1: 정수 vs 문자열 혼동
틀린 예제:
age = "25"
next_age = age + 1 # TypeError!
올바른 예제:
age = "25"
next_age = int(age) + 1
print(f"내년 나이: {next_age}") # 26
실수 2: 들여쓰기 오류
틀린 예제:
for i in range(3):
print(i) # IndentationError!
올바른 예제:
for i in range(3):
print(i) # 0, 1, 2
실수 3: 무한 루프
틀린 예제:
count = 0
while count < 10:
print(count)
# count 증가를 빠뜨림 - 무한 루프!
올바른 예제:
count = 0
while count < 10:
print(count)
count += 1
연습 문제
문제 1: 온도 변환
섭씨(C)를 화씨(F)로 변환하는 프로그램을 작성하세요. 공식: F = (C × 9/5) + 32
문제 2: 구구단 프로그램
입력받은 숫자의 구구단을 출력하세요.
문제 3: 숫자 분류
1부터 100까지의 숫자 중 3의 배수의 개수를 세세요.
풀이
문제 1 풀이
celsius = float(input("섭씨 온도를 입력하세요: "))
fahrenheit = (celsius * 9/5) + 32
print(f"{celsius}°C = {fahrenheit:.1f}°F")
문제 2 풀이
num = int(input("구구단을 원하는 숫자를 입력하세요 (1-9): "))
print(f"\n{num}단:")
for i in range(1, 10):
print(f"{num} × {i} = {num * i}")
문제 3 풀이
count = 0
multiples = []
for i in range(1, 101):
if i % 3 == 0:
count += 1
multiples.append(i)
print(f"3의 배수 개수: {count}")
print(f"3의 배수: {multiples}")
마무리
파이썬 기초 문법을 정확히 이해하는 것이 모든 Python 프로그래밍의 기초입니다. 각 개념을 실제로 코드로 작성해보고, 여러 변형을 시도해보세요. 이해가 되지 않는 부분은 REPL(대화형 셸)에서 직접 테스트해보며 학습하는 것이 가장 효과적입니다.