반응형
파이썬에서 타입 힌트(Type Hint)는 함수의 인자와 반환값의 타입을 명시하여 코드의 가독성을 높이고, 코드 분석 도구나 IDE가 타입을 추론하는 데 도움을 주기 위해 사용됩니다. 어노테이션(Annotation)은 이러한 타입 힌트를 사용하는 방법입니다.
타입 힌트의 기본 사용법
타입 힌트는 함수의 인자와 반환값에 대한 타입을 명시할 수 있습니다. 이를 통해 코드를 읽는 사람이 함수의 의도를 더 쉽게 이해할 수 있습니다.
1. 기본 타입 힌트
def add(x: int, y: int) -> int:
return x + y
result = add(3, 5)
print(result) # 8
위 예제에서 x
와 y
는 int
타입이며, 함수는 int
타입을 반환한다고 명시하고 있습니다.
2. 다양한 타입 힌트
파이썬의 여러 기본 타입과 사용자 정의 타입에 대해 타입 힌트를 사용할 수 있습니다.
from typing import List, Dict, Tuple, Union, Optional
def process_list(items: List[int]) -> List[int]:
return [item * 2 for item in items]
def get_user_info(name: str, age: int) -> Dict[str, Union[str, int]]:
return {"name": name, "age": age}
def find_coordinates() -> Tuple[float, float]:
return 37.7749, -122.4194
def optional_value(value: Optional[int] = None) -> int:
return value if value is not None else 0
items = [1, 2, 3]
print(process_list(items)) # [2, 4, 6]
print(get_user_info("Alice", 30)) # {'name': 'Alice', 'age': 30}
print(find_coordinates()) # (37.7749, -122.4194)
print(optional_value()) # 0
print(optional_value(10)) # 10
실습 과제
- 주어진 리스트에서 짝수만 반환하는 함수
get_even_numbers
를 작성하세요. 함수의 인자와 반환값에 대한 타입 힌트를 포함하세요. - 두 점의 좌표를 입력받아 두 점 사이의 거리를 계산하는 함수
calculate_distance
를 작성하세요. 함수의 인자와 반환값에 대한 타입 힌트를 포함하세요. - 학생들의 이름과 점수를 담은 딕셔너리를 입력받아 최고 점수를 가진 학생의 이름을 반환하는 함수
get_top_student
를 작성하세요. 함수의 인자와 반환값에 대한 타입 힌트를 포함하세요.
실습 과제 답안
1. get_even_numbers
함수
from typing import List
def get_even_numbers(numbers: List[int]) -> List[int]:
return [num for num in numbers if num % 2 == 0]
# 테스트
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(get_even_numbers(numbers)) # [2, 4, 6, 8, 10]
2. calculate_distance
함수
from typing import Tuple
import math
def calculate_distance(point1: Tuple[float, float], point2: Tuple[float, float]) -> float:
return math.sqrt((point2[0] - point1[0])**2 + (point2[1] - point1[1])**2)
# 테스트
point1 = (0.0, 0.0)
point2 = (3.0, 4.0)
print(calculate_distance(point1, point2)) # 5.0
3. get_top_student
함수
from typing import Dict
def get_top_student(students: Dict[str, int]) -> str:
return max(students, key=students.get)
# 테스트
students = {"Alice": 85, "Bob": 92, "Charlie": 88}
print(get_top_student(students)) # Bob
이러한 타입 힌트를 사용하면 코드의 가독성이 높아지고, 정적 분석 도구나 IDE를 통해 타입 검사를 할 수 있어 코드의 품질을 높일 수 있습니다. 타입 힌트는 파이썬 3.5부터 도입되었으며, typing
모듈을 통해 다양한 타입을 지원합니다.
'실버를 위한 코딩 > 파이썬 연습' 카테고리의 다른 글
[파이썬 연습] 주식 거래의 변동성 돌파 전략 (50) | 2024.08.15 |
---|---|
[파이썬 연습] 로깅과 어노테이션 (36) | 2024.08.14 |
[파이썬 연습] 파이썬 데코레이터 (0) | 2024.08.12 |
[파이썬 연습] 내장 변수 __name__ (1) | 2024.08.11 |
[파이썬 연습] 예외 처리 작성하기 (1) | 2024.08.10 |