파이썬에서 별표(*) 연산자란?
파이썬에서 별표(asterisk) 연산자는 상황에 따라 여러 가지 의미로 사용되는 다재다능한 연산자입니다. 단순한 곱셈 기호를 넘어, 시퀀스 반복, 가변 인수 처리 등 다양한 역할을 수행하기 때문에 파이썬 개발자라면 정확히 이해하고 있어야 합니다.
1. 숫자 데이터 타입에서는 곱셈 연산자
숫자 타입(int, float, complex)에 사용하면 일반적인 곱셈 연산자로 동작합니다.
>>> a=10; b=20 >>> a*b 200 >>> a=1.5; b=2.5 >>> a*b 3.75 >>> a=2+3j; b=3+2j >>> a*b 13j
위 예시처럼 정수뿐만 아니라 실수, 복소수에도 동일하게 곱셈 결과를 반환합니다.
2. 문자열·리스트·튜플에서는 반복 연산자
문자열(string), 리스트(list), 튜플(tuple)과 같은 시퀀스 자료형에 사용하면 해당 시퀀스를 지정한 횟수만큼 반복하는 연산자로 작동합니다.
>>> s="Hello" >>> s*3 'HelloHelloHello' >>> L1=[1,2,3] >>> L1*3 [1, 2, 3, 1, 2, 3, 1, 2, 3] >>> T1=(1,2,3) >>> T1*3 (1, 2, 3, 1, 2, 3, 1, 2, 3)
예를 들어 구분선을 만들 때 "-" * 30처럼 활용하면 코드가 훨씬 간결해집니다.
3. 함수 정의에서는 가변 위치 인수(*args)
함수를 선언할 때 매개변수 앞에 별표 하나를 붙이면, 호출 환경에서 전달되는 임의 개수의 위치 인수(positional arguments)를 받을 수 있습니다. 함수 내부에서 이 값들은 튜플(tuple) 형태로 저장됩니다.
>>> def function(*arg): print(type(arg)) for i in arg: print(i)
>>> function(1,2,3) <class 'tuple'> 1 2 3
출력 결과에서 확인할 수 있듯이, 전달된 인수들은 튜플로 묶여 함수 내부에서 순회(iteration)할 수 있습니다.
4. 참고: 별표 두 개(**)는 키워드 인수
별표 두 개(**)를 함께 알아두면 유용합니다. 함수 정의에서 **kwargs는 임의 개수의 키워드 인수를 딕셔너리(dict) 형태로 받으며, 함수 호출 시에는 딕셔너리를 언패킹(unpacking)하여 키워드 인수로 전달하는 역할도 합니다.
>>> def profile(**info):
for key, value in info.items():
print(f"{key}: {value}")
>>> profile(name="Kim", age=25)
name: Kim
age: 25마무리
정리하면 파이썬의 별표(*) 연산자는 다음과 같이 사용됩니다.
- 숫자 타입: 곱셈 연산
- 시퀀스 타입: 요소 반복
- 함수 정의: 가변 위치 인수(*args) 수집
- 별표 두 개(**): 가변 키워드 인수(**kwargs) 수집 및 언패킹
이처럼 문맥에 따라 달라지는 별표 연산자의 의미를 잘 익혀두면, 더 유연하고 파이썬다운(Pythonic) 코드를 작성하는 데 큰 도움이 됩니다.