Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 별표(*) 연산자란 무엇일까? 의미와 활용법 완벽 정리

파이썬에서 별표(*) 연산자란?

파이썬에서 별표(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) 코드를 작성하는 데 큰 도움이 됩니다.