Skip to content

KR_Literal

somaz edited this page Sep 22, 2026 · 7 revisions

Python 리터럴(Literal) 개념 정리


1️⃣ 리터럴이란?

리터럴(Literal)은 소스 코드에서 표현되는 고정된 값을 말한다. 이는 변수나 상수에 할당될 수 있는 데이터 값을 직접 표현하는 방법이다.

# 리터럴 예시
x = 42        # 숫자 리터럴
name = "홍길동"  # 문자열 리터럴
is_valid = True  # 불리언 리터럴

✅ 특징:

  • 코드에서 직접 표현되는 값이다
  • 변수를 통해 간접적으로 참조될 필요가 없다
  • 파이썬에서는 다양한 유형의 리터럴을 지원한다


2️⃣ 숫자 리터럴

파이썬은 다양한 형태의 숫자 리터럴을 지원한다.

1. 정수 리터럴

# 십진수
decimal = 10

# 이진수 (0b 또는 0B 접두사)
binary = 0b1010  # 10과 동일

# 팔진수 (0o 또는 0O 접두사)
octal = 0o12  # 10과 동일

# 십육진수 (0x 또는 0X 접두사)
hexadecimal = 0xA  # 10과 동일

# 긴 정수
big_number = 1_000_000  # 언더스코어로 가독성 향상

2. 부동소수점 리터럴

# 일반 부동소수점
float_number = 3.14

# 지수 표기법
scientific = 3.14e2  # 3.14 × 10² = 314.0

# 음수 지수
small_number = 3.14e-2  # 3.14 × 10⁻² = 0.0314

3. 복소수 리터럴

# 복소수 (j 또는 J를 허수부에 접미사로 사용)
complex_number = 3 + 4j
complex_another = complex(3, 4)  # 함수로 생성

✅ 숫자 리터럴 특징:

  • 정수는 int 타입으로 생성된다
  • 부동소수점은 float 타입으로 생성된다
  • 복소수는 complex 타입으로 생성된다
  • 언더스코어(_)를 사용하여 큰 숫자의 가독성을 높일 수 있다


3️⃣ 문자열 리터럴

파이썬은 여러 형태의 문자열 리터럴을 지원한다.


1. 일반 문자열

# 작은따옴표
single_quoted = '파이썬 문자열'

# 큰따옴표
double_quoted = "파이썬 문자열"

# 삼중 따옴표 (여러 줄 문자열)
multi_line = '''이것은
여러 줄에 걸친
문자열입니다.'''

# 삼중 큰따옴표도 가능
multi_line_double = """이것도
여러 줄에 걸친
문자열입니다."""

2. 이스케이프 시퀀스

# 특수 문자는 백슬래시로 이스케이프
escaped = "이것은 \"인용구\"입니다."
new_line = "첫 번째 줄\n두 번째 줄"
tab = "이름\t나이"

3. 특수 문자열 리터럴

# 원시 문자열 (r 접두사)
raw_string = r"C:\Users\username\Documents"  # 이스케이프 시퀀스를 무시

# f-문자열 (포맷 문자열)
name = "홍길동"
age = 30
f_string = f"이름: {name}, 나이: {age}"  # 변수 삽입

# 바이트 문자열
byte_string = b"hello"  # ASCII 문자만 허용

✅ 문자열 리터럴 특징:

  • 작은따옴표('), 큰따옴표("), 삼중따옴표(''' 또는 """)로 표현
  • 여러 줄 문자열은 삼중따옴표로 표현
  • 특수 접두사를 사용하여 다양한 형태의 문자열 생성 가능
  • 모든 문자열은 불변(immutable) 객체로 생성된다


4️⃣ 불리언 리터럴

파이썬에는 두 가지 불리언 리터럴이 있다.

is_true = True
is_false = False

✅ 주의사항:

  • True와 False는 첫 글자를 반드시 대문자로 작성해야 한다
  • 소문자 true, false는 불리언 리터럴이 아닌 변수명으로 해석된다
  • 예약어이므로 변수명으로 사용할 수 없다


5️⃣ None 리터럴

None은 파이썬에서 값이 없음을 나타내는 특별한 리터럴이다.

empty_value = None

✅ 특징:

  • 단 하나의 인스턴스만 존재하는 싱글톤 객체다
  • 불리언(Bool) 컨텍스트에서 False로 평가된다
  • None은 대소문자를 구분하므로 정확히 None으로 작성해야 한다


6️⃣ 컬렉션 리터럴

파이썬은 여러 컬렉션 자료형에 대한 리터럴 구문을 제공한다.

1. 리스트 리터럴

# 대괄호로 정의
empty_list = []
numbers = [1, 2, 3, 4, 5]
mixed = [1, "안녕", True, None]

2. 튜플 리터럴

# 괄호로 정의 (옵션), 쉼표가 중요
empty_tuple = ()
single_item = (1,)  # 쉼표가 필요
coordinates = (10, 20)
tuple_no_paren = 1, 2, 3  # 괄호 없이도 가능

3. 딕셔너리 리터럴

# 중괄호와 콜론으로 정의
empty_dict = {}
person = {"name": "홍길동", "age": 30, "city": "서울"}
dict_comp = {x: x**2 for x in range(5)}  # 딕셔너리 컴프리헨션

4. 집합 리터럴

# 중괄호로 정의
numbers_set = {1, 2, 3, 4, 5}
# 빈 집합은 set() 함수로 생성해야 함
empty_set = set()  # {} 는 빈 딕셔너리
set_comp = {x for x in range(10) if x % 2 == 0}  # 집합 컴프리헨션

✅ 컬렉션 리터럴 특징:

  • 리스트는 대괄호 []로 표현
  • 튜플은 괄호 () 또는 쉼표로 표현
  • 딕셔너리는 중괄호 {}와 콜론 :을 사용
  • 집합은 중괄호 {}를 사용하지만, 빈 집합은 set()으로 생성


7️⃣ 리터럴 표현식

리터럴은 표현식 안에서 다른 리터럴과 결합하여 사용할 수 있다.

# 리터럴 조합
result = 10 + 20  # 숫자 리터럴 조합
greeting = "Hello, " + "World!"  # 문자열 리터럴 조합
flags = True or False  # 불리언 리터럴 조합

# 리터럴 컴프리헨션
squares = [x**2 for x in range(10)]  # 리스트 컴프리헨션
even_set = {x for x in range(20) if x % 2 == 0}  # 집합 컴프리헨션

리터럴 타입 힌트

Python 3.8부터는 typing.Literal을 사용하여 타입 힌트에서 특정 리터럴 값만 허용하도록 지정할 수 있다.

from typing import Literal

# mode 매개변수는 'r', 'w', 'a' 중 하나만 허용
def open_file(filename: str, mode: Literal['r', 'w', 'a']) -> None:
    # 함수 내용
    pass

# 올바른 사용
open_file("data.txt", "r")  # 정상

# 잘못된 사용
# open_file("data.txt", "x")  # 타입 검사 도구에서 오류 발생

✅ 리터럴 표현식 활용:

  • 리터럴은 표현식 내에서 자유롭게 결합 가능
  • 컴프리헨션을 사용해 간결한 코드 작성 가능
  • 타입 힌트에서 Literal을 활용하여 특정 값만 허용하도록 제한 가능


8️⃣ 활용 예제

# 상수 정의에 활용
PI = 3.14159
MAX_USERS = 100
DEFAULT_NAME = "Guest"

# 기본값 설정에 활용
def greet(name="Anonymous"):
    return f"Hello, {name}!"

# 함수 반환 값으로 활용
def is_adult(age):
    return age >= 18  # 비교 결과인 불리언 리터럴 반환

# 컬렉션 초기화에 활용
config = {
    "debug": True,
    "api_key": "abc123",
    "max_retries": 3
}

✅ 활용 Tip:

  • 상수나 기본값 정의에 리터럴 사용
  • 설정 값이나 초기 상태 표현에 활용
  • 함수나 메서드의 반환 값으로 활용
  • 코드의 가독성과 유지 관리성을 높이는 데 도움

리터럴은 코드에서 직접 값을 표현하는 방법으로, 다양한 데이터 유형을 간결하게 표현할 수 있게 해준다. 각 리터럴 유형은 파이썬의 해당 데이터 타입과 밀접하게 연관되어 있으며, 코드의 가독성과 유지 관리성을 높인다.
리터럴의 올바른 사용은 파이썬 프로그래밍의 기초 중 하나이며, 효과적인 코드 작성을 위해 다양한 리터럴 표현 방식을 익히는 것이 중요하다.



Clone this wiki locally