Python 기초 문법부터 조건문·반복문까지 한 번에 정리하기

Alchemist·2026년 9월 29일

KT AIVLE

목록 보기
30/130

Python 기초 문법부터 조건문·반복문까지 한 번에 정리하기

Python을 처음 공부할 때 가장 먼저 익혀야 하는 것은 문법 자체보다 값을 저장하고, 계산하고, 조건에 따라 실행 흐름을 바꾸는 방법이다.

이 글에서는 Python 3 기준으로 실행 방법, 변수와 자료형, 문자열, 연산자, 조건문, 반복문까지 하나의 흐름으로 정리한다.

이 글의 코드는 Python 3 기준이다. Python 2에서 사용하던 raw_input()이나 print 문법은 사용하지 않는다.


Python 코드는 어떻게 실행될까?

Python은 크게 두 가지 방식으로 실행할 수 있다.

대화형 인터프리터

터미널에서 Python을 실행하면 한 줄씩 코드를 입력하고 바로 결과를 확인할 수 있다.

python

Windows에서는 환경에 따라 다음 명령을 사용할 수도 있다.

py

인터프리터가 실행되면 다음처럼 간단한 계산을 바로 해볼 수 있다.

>>> 2 + 3
5

>>> "python".upper()
'PYTHON'

짧은 문법을 확인하거나 함수의 동작을 빠르게 실험할 때 유용하다.

.py 파일 실행

실제 프로그램은 보통 .py 파일로 작성한다.

print("Hello, Python!")

app.py로 저장했다면 다음처럼 실행한다.

python app.py

코드가 길어질수록 파일 단위로 작성하는 방식이 기본이 된다.


현재 Python 버전 확인하기

환경 문제를 해결할 때 가장 먼저 확인할 것 중 하나가 Python 버전이다.

python --version

Python 코드 안에서는 다음처럼 확인할 수도 있다.

import sys

print(sys.version)
print(sys.version_info)

특히 라이브러리 설치 오류나 문법 오류가 발생했을 때는 내가 어떤 Python을 실행하고 있는지 먼저 확인하는 습관이 중요하다.


가상환경을 사용하는 이유

프로젝트마다 필요한 라이브러리 버전은 다를 수 있다.

Python 기본 기능만으로도 가상환경을 만들 수 있다.

python -m venv .venv

Windows:

.venv\Scripts\activate

macOS/Linux:

source .venv/bin/activate

가상환경을 사용하면 프로젝트별로 패키지를 독립적으로 관리할 수 있다.


첫 번째 Python 프로그램

가장 단순한 출력은 print()로 시작한다.

print("Hello, Python!")

여러 값을 함께 출력할 수도 있다.

name = "seungjun"
age = 30

print(name, age)

Python 3에서 print는 함수이므로 괄호를 사용한다.


주석은 무엇을 적어야 할까?

한 줄 주석은 #으로 작성한다.

# API 응답에서 활성 사용자만 필터링한다.
active_users = 120

좋은 주석은 코드가 무엇을 하는지 반복해서 설명하기보다, 왜 그렇게 작성했는지를 설명하는 편이 좋다.

# 외부 API가 초 단위 값을 요구하므로 밀리초를 초로 변환한다.
timeout_seconds = timeout_ms / 1000

Python 소스 파일과 UTF-8

Python 3의 소스 파일은 기본적으로 UTF-8로 처리된다.

message = "로그인에 성공했습니다."
print(message)

예전처럼 파일 첫 줄에 매번 인코딩 주석을 넣을 필요는 없다. 다른 인코딩을 사용할 특별한 이유가 있을 때만 명시하면 된다.


변수와 값

변수는 값을 가리키는 이름이다

Python에서는 별도의 타입 선언 없이 변수를 만들 수 있다.

user_count = 150
service_name = "my-api"
is_active = True
count = 10
count = 20

두 번째 줄에서 count가 가리키는 값이 바뀐다.


변수 이름 규칙

Python에서는 일반 변수와 함수 이름에 snake_case를 주로 사용한다.

request_count = 10

def calculate_total_price():
    pass

클래스 이름은 보통 PascalCase를 사용한다.

class UserService:
    pass

숫자로 시작하는 이름은 사용할 수 없다.


기본 자료형

정수 int

order_count = 120
retry_count = 3

Python의 정수는 큰 값을 다룰 때 별도의 long 타입으로 바꿀 필요가 없다.

big_number = 10 ** 100

실수 float

conversion_rate = 3.25
temperature = 21.7
value = 5.23e-3

불리언 bool

is_logged_in = True
has_permission = False

None

값이 아직 없거나 의도적으로 비어 있음을 나타낼 때 사용한다.

selected_user = None

if selected_user is None:
    print("선택된 사용자가 없습니다.")

문자열 다루기

문자열은 작은따옴표와 큰따옴표 모두 사용할 수 있다.

name = "Python"
message = 'Hello'

여러 줄 문자열은 삼중 따옴표를 사용할 수 있다.

template = """
안녕하세요.

회원가입이 완료되었습니다.
서비스를 이용해 주세요.
"""

이스케이프 문자

print("첫 번째 줄\n두 번째 줄")
print("이름\t점수")
표현의미
\n줄바꿈
\t탭
\\역슬래시
\"큰따옴표

Raw String

정규식이나 Windows 경로처럼 역슬래시가 많은 문자열은 raw string이 편하다.

path = r"C:\Users\newwo\project"

문자열 포매팅은 f-string을 우선 사용하자

name = "kim"
score = 92

print(f"{name}님의 점수는 {score}점입니다.")

계산식도 넣을 수 있다.

price = 12000
quantity = 3

print(f"총 금액: {price * quantity:,}원")

소수점 자리수도 지정할 수 있다.

rate = 0.123456
print(f"{rate:.2%}")

사용자 입력

Python 3에서 사용자 입력은 input()으로 받는다.

name = input("이름을 입력하세요: ")
print(f"안녕하세요, {name}님!")

input()의 결과는 항상 문자열이다.

age = int(input("나이를 입력하세요: "))
print(age + 1)

들여쓰기가 문법이다

Python은 {} 대신 들여쓰기로 코드 블록을 구분한다.

is_admin = True

if is_admin:
    print("관리자 페이지를 표시합니다.")

print("프로그램 종료")

일반적으로 공백 4칸을 사용한다.

Python에서는 보기 좋은 들여쓰기가 단순 스타일이 아니라 문법의 일부다.


연산자

산술 연산자

a = 13
b = 3

print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)
연산자의미
+덧셈
-뺄셈
*곱셈
/일반 나눗셈
//버림 나눗셈
%나머지
**거듭제곱

Python 3에서 정수끼리 /를 사용해도 결과는 실수다.

13 / 3
4.333333333333333

정수 몫이 필요하면 //를 사용한다.

13 // 3
4

비교 연산자

age = 20

print(age == 20)
print(age != 20)
print(age > 18)
print(age >= 20)
print(age < 30)
print(age <= 20)

논리 연산자

age = 25
is_member = True

can_purchase = age >= 19 and is_member

주요 논리 연산자는 and, or, not이다.

멤버십 연산자

roles = ["user", "editor", "admin"]

print("admin" in roles)
print("guest" not in roles)

조건문

status_code = 200

if status_code == 200:
    print("요청 성공")
stock = 0

if stock > 0:
    print("구매 가능")
else:
    print("품절")
score = 85

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "D"

조건은 위에서 아래 순서로 검사되며 처음으로 참이 된 블록만 실행된다.


Truthy와 Falsy

다음 값들은 거짓으로 평가된다.

False
None
0
0.0
""
[]
{}
set()
users = []

if not users:
    print("사용자가 없습니다.")

while 반복문

retry_count = 0

while retry_count < 3:
    print(f"{retry_count + 1}번째 요청")
    retry_count += 1
while True:
    command = input("명령어: ")

    if command == "quit":
        break

for 반복문

users = ["kim", "lee", "park"]

for user in users:
    print(user)

range()

for number in range(5):
    print(number)

enumerate()

users = ["kim", "lee", "park"]

for index, user in enumerate(users, start=1):
    print(index, user)

break와 continue

logs = ["INFO", "INFO", "ERROR", "INFO"]

for log in logs:
    if log == "ERROR":
        print("오류 발견")
        break
numbers = [1, -1, 3, -5, 8]

for number in numbers:
    if number < 0:
        continue

    print(number)

반복문의 else

target = "admin"
roles = ["user", "editor"]

for role in roles:
    if role == target:
        print("권한 발견")
        break
else:
    print("해당 권한이 없습니다.")

break로 종료되지 않았을 때 else가 실행된다.


간단한 실전 예제: 주문 금액 처리하기

orders = [12000, 35000, 8000, 51000]

total = 0
high_value_count = 0

for price in orders:
    if price <= 0:
        continue

    total += price

    if price >= 30000:
        high_value_count += 1

average = total / len(orders)

print(f"총 주문 금액: {total:,}원")
print(f"평균 주문 금액: {average:,.0f}원")
print(f"3만 원 이상 주문: {high_value_count}건")

자주 헷갈리는 부분

=와 ==

=는 값을 할당하고 ==는 두 값이 같은지 비교한다.

/와 //

5 / 2의 결과는 2.5, 5 // 2의 결과는 2다.

is와 ==

==는 값이 같은지 비교하고 is는 같은 객체인지 비교한다. None 검사에는 보통 is를 사용한다.

if value is None:
    ...

핵심 정리

  • Python 코드는 인터프리터에서 바로 실행하거나 .py 파일로 실행할 수 있다.
  • 변수는 객체를 가리키는 이름이며 별도의 타입 선언 없이 사용할 수 있다.
  • Python 3의 문자열과 소스 코드는 기본적으로 Unicode와 UTF-8 환경을 자연스럽게 지원한다.
  • 문자열 포매팅에는 가독성이 좋은 f-string을 우선 고려할 수 있다.
  • /는 일반 나눗셈, //는 버림 나눗셈이다.
  • Python에서는 공백 4칸 기반의 들여쓰기 자체가 문법이다.
  • if, for, while을 이용하면 프로그램의 실행 흐름을 제어할 수 있다.
  • break, continue, enumerate(), range()를 익히면 반복 로직을 간결하게 작성할 수 있다.
profile
html_programming_language

0개의 댓글