// education

파이썬 기초 문법

들어가며

파이썬 기초 문법은 모든 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(대화형 셸)에서 직접 테스트해보며 학습하는 것이 가장 효과적입니다.

← 이전 다음 →자료구조 완벽 가이드