- ViewData
- JavaScript
- Mac Oracle
- asp.net core swagger
- 404에러페이지
- jquery 바코드생성
- 강제이동
- XSS방어
- 타임피커
- ASP.Net Core 404
- php 캐쉬제거
- simpe ftp
- swagger 500 error
- asp ftp
- javascript 바코드 생성
- 하드 윈도우 복사
- XSS PHP
- javascript redirection
- 바코드 생성하기
- asp.net dropdownlist
- asp.net Select
- SSD 복사
- django 엑셀불러오기
- 말줄임표시
- 하드 마이그레이션
- 맥 오라클설치
- ViewBag
- TempData
- asp.net core Select
- 원격ftp
웹개발자의 기지개
[Python] 함수 가변인자 공부하기 - *args, **kargs 패킹/언패킹 본문
함수 튜플/딕셔너리 언패킹
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
def concatenate_strings(*args):
return ''.join(args)
# 메인 실행 부분
def main():
n = int(input("몇 개의 문자열을 입력하시겠습니까? "))
strings = []
for i in range(n):
s = input(f"{i + 1}번째 문자열을 입력하세요: ")
strings.append(s)
result = concatenate_strings(*strings)
print("합쳐진 문자열:", result)
# 함수 실행
main()
|
cs |
실행결과
------
몇 개의 문자열을 입력하시겠습니까? 3
1번째 문자열을 입력하세요: 안녕
2번째 문자열을 입력하세요: 하세요
3번째 문자열을 입력하세요: 파이썬
합쳐진 문자열: 안녕하세요파이썬
------
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
def concatenate_strings(*args):
result = ''
for string in args:
result += string
return result
string_list = []
num = int(input("몇 개의 문자열을 받을까요? 문자열 개수를 입력해주세요: "))
for i in range(num):
s = input(f"{i + 1}번째 문자열을 입력해주세요: ")
string_list.append(s)
print("\n입력한 문자열 목록:", string_list)
print("-" * 30)
print("합쳐진 문자열:", concatenate_strings(*string_list))
|
cs |
실행결과
---------
몇 개의 문자열을 받을까요? 문자열 개수를 입력해주세요: 3
1번째 문자열을 입력해주세요: 안녕
2번째 문자열을 입력해주세요: 하세요
3번째 문자열을 입력해주세요: 파이썬
입력한 문자열 목록: ['안녕', '하세요', '파이썬']
------------------------------
합쳐진 문자열: 안녕하세요파이썬
---------
string_list = ["안녕", "하세요", "파이썬"] # 리스트다
concatenate_strings(*string_list)
내부적으로 string_list은 튜플처리된다.
내부적으로 args = ("안녕", "하세요", "파이썬") 처리된다.
concatenate_strings("안녕", "하세요", "파이썬")
직접 args = ("안녕", "하세요", "파이썬") 되어서 정상 입력된다.
concatenate_strings("a", "b") -> args = ("a", "b")
concatenate_strings(*["a", "b"]) -> args = ("a", "b") (리스트 언패킹됨)
concatenate_strings(("a", "b")) -> args = (("a", "b"),) (튜플 한 개)
concatenate_strings(*("a", "b")) -> args = ("a", "b") (튜플 언패킹됨)
**kwargs란?
**kwargs는 **Keyword Arguments(키워드 인자)**를 받아서 처리하는 파이썬의 가변 인자 문법
즉, 인자를 key=value 형태로 여러 개 넘길 수 있다. 함수 안에서는 이것이 딕셔너리로 들어온다.
|
1
2
3
4
|
def show_info(**kwargs):
print(kwargs)
show_info(name="Alice", age=25, job="Developer")
|
cs |
실행결과
{'name': 'Alice', 'age': 25, 'job': 'Developer'}

**kargs 언패킹
|
1
2
3
4
5
6
7
8
9
10
11
|
def show_info(**kwargs):
for key, value in kwargs.items():
print(f"{key} : {value}")
info = {
"name": "Bob",
"age": 30,
"language": "Python"
}
show_info(**info) # 딕셔너리를 언패킹해서 넘김
|
cs |
실행결과
-------
name : Bob
age : 30
language : Python
-------

주의할점은 *args 가 **kargs 보다 먼저와야 한다.
|
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
|
# *args를 이용한 가변 인자 (패킹)
def sum_all(*args):
total = 0
for num in args:
total += num
return total
print(sum_all(1, 2, 3)) # 출력: 6
print(sum_all(1, 2, 3, 4, 5)) # 출력: 15
# **kwargs를 이용한 키워드 가변 인자 (패킹)
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="홍길동", age=30, city="서울")
# 출력:
# name: 홍길동
# age: 30
# city: 서울
# 언패킹을 이용한 함수 호출
numbers = [1, 2, 3, 4, 5]
print(sum_all(*numbers)) # 리스트를 언패킹하여 인자로 전달, 출력: 15
person = {"name": "홍길동", "age": 30, "city": "서울"}
print_info(**person) # 딕셔너리를 언패킹하여 키워드 인자로 전달
|
cs |
3) packing, unpacking
`print`함수는 출력하고자하는 객체가 몇개던지, 즉 몇개의 인자를 받던지 상관하지 않고 출력해줍니다. ``` print("가나다 abc 123") print("가나다"…
wikidocs.net
'python' 카테고리의 다른 글
| [Python] Whisper AI - 자동 음성 인식 (Open AI) (0) | 2025.04.27 |
|---|---|
| [Python] 아나콘다 window 설치 및 환경설정 그리고 가상환경 설정 해제 삭제 - Anaconda3 (0) | 2025.04.03 |
| [Python] Python 여러개 버전 확인 (mac) (0) | 2025.01.20 |
| [Python] python 여러개 버전 확인 (Windows) (0) | 2025.01.20 |
| [AIOT] 라즈베리파이 보안시스템 구축 예제 (2) | 2024.06.21 |