일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- solidity
- pythonic
- 공개키
- python
- javascript
- 마스터링비트코인
- Redis
- 비트코인
- 백서
- js
- 스마트컨트랙트
- 암호화폐
- 파이썬
- 블록체인
- keras
- 레디스
- 개발
- 개인키
- node js
- 마스터링 비트코인
- DAPP
- 이더리움
- 솔리디티
- 주소
- Ethereum
- 블록체인개발
- 문자열
- 마스터링 이더리움
- smart contract
- 알고리즘
- Today
- Total
개발이야기
[Python Skill] * (Asterisk) 사용법 본문
안녕하세요. 이번 포스팅에서는 * (Asterisk)의 사용법에 대해서 알아보도록 하겠습니다 !
첫 번재로는 곱셈 연산입니다. * 연산을 두 개의 변수 사이에 넣으면 두 변수의 곱을 계산할 수 있습니다.
1) a * b (곱셈 연산)
<예시 코드>
<출력값>
다음은 거듭 제곱 연산입니다.
2) a ** b (거듭 제곱 연산)
<예시 코드>
<출력값>
이러한 기본 연산외에 * 은 리스트, 튜플 같이 컨터이너 타입을 unpacking 할 때도 사용됩니다.
3) Unpacking
<예시 코드>
<출력값>
또한 * 연산을 이용해서 함수의 파라미터 값을 가변적으로 넘겨줄 수 있습니다.
이번 포스팅을 작성하는 이유중의 하나인데요. 이 가변적인 파라미터를 잘 사용할 수 있느냐 없느냐에 따라서
파이썬의 초급자와 중급자를 나누기도 합니다. 예시 코드를 통해서 한 번 살펴보도록 하겠습니다.
4) *args, **kargs
- *args
먼저 *이 하나 붙은 *args를 보겠습니다. *args 를 사용하여 가변적인 파라미터를 넘겨줄 수 있습니다.
함수를 사용하다보면 인자의 갯수를 정확히 모르는 경우가 많이 발생하는데요.
이럴 때 *args가 아주 유용하게 사용될 수 있습니다.
<예시 코드>
<출력값>
출력값을 보시면 *args 로 받은 파라미터값은 튜플로 묶여있는 것을 보실 수 있습니다. 따라서 파라미터를 사용하기 위해서 예시코드에서 처럼 인덱스로 접근하거나 *을 사용하여 Unpacking후 사용하실 수 있습니다.
또한 *args를 사용하여 리스트를 그대로 넘겨주는 것도 가능합니다.
<예시 코드>
<출력값>
리스트 타입으로 넘긴 값들이 튜플로 묶여 있는것을 확인할 수 있습니다.
- **kwargs
**이 두 개가 붙으면 키-값 타입에 가변적인 인자를 파라미터로 넘겨줄 수 있습니다. *이 하나만 붙는것과의 차이가 바로 넘겨주는 값의 타입입니다.
<예시 코드>
add함수 옆에 a =0, b=0 코드는 파라미터를 넘겨받지 않았을때 설정되는 디폴트 값입니다.
<출력값>
**을 두개 붙여 줬기 때문에 a = 2 가 되고 b =3 이 되어 5가 출력된것을 확인할 수 있습니다.
아직까지 잘 이해가 안되실 수 있는데요 몇 개의 예제를 보시면 이해가 조금 더 되실 겁니다.
<예시 코드>
<출력값>
** 은 keyword 타입의 변수를 넘겨주기 때문에 key-value 형태로 값을 반환해줄 수 있습니다.
또한 **은 keyword 타입이기 때문에 key 로 value 값을 접근할 수 있습니다.
<예시코드>
<출력값>
각 키에 해당하는 value값이 출력되는 것을 확인할 수 있습니다.
아직까지 이해가 조금 덜 되신 분들은 직접 이것저것 코딩을 해보시면서 결과값을 확인하시면 이해하시는데 많은 도움이 될 것입니다.
또한 아래의 참고 링크를 확인하시어 더 많은 레퍼런스들을 보시면 더 이해가 잘 될 것입니다.
* (Asterisk)는 정말 많은 곳에 유용하게 사용되기 때문에 이번 기회에 꼭 알아두고 가셨으면 좋겠습니다.
포스팅에 질문이 있으신 분들은 댓글 달아주시면 감사하겠습니다 !!
참고
[1] http://book.pythontips.com/en/latest/args_and_kwargs.html
[2] https://python-reference.readthedocs.io/en/latest/docs/operators/dict_unpack.html
[3] https://mingrammer.com/understanding-the-asterisk-of-python/