번역
다음은 제공된 텍스트를 한국어로 번역한 것입니다.
파이썬 - 임의의 veya 가변 길이 인수
안녕하세요, 미래의 파이썬 마법사 여러분! 오늘은 파이썬에서 임의의 인수에 대한 흥미로운 여정을 떠날 거예요. 프로그래밍에 새로운 사람이라도 걱정하지 마세요. 저는 여러분의 친절한 가이드가 될 거예요. 이 개념을 단계별로 탐구해볼 거예요. 그럼, 가상의 지팡이(키보드)를 챙기고, 함께 빠져들어볼까요!
임의의 인수 (*args)
파티를 계획 중이라고 가정해봅시다. 하지만 얼마나 많은 친구들이 참석할지 모르겠어요. 어떤 수의 손님들에도 대비하고 싶은 것이죠. 이 것은 파이썬 함수에서 임의의 인수가 하는 일과 정확히 같아요 – 알 수 없는 수의 인수를 처리할 수 있게 해줍니다!
파이썬에서는 *args
를 사용하여 임의의 인수를 나타냅니다. 별표(*
)는 여기서 마법의 기호가 되고, args
는 단순한 관행일 뿐입니다 (어떤 이름을 사용할 수 있지만, args
는 널리 사용되고 알려져 있습니다).
간단한 예제를 살펴보겠습니다:
def greet_friends(*args):
for friend in args:
print(f"Hello, {friend}!")
greet_friends("Alice", "Bob", "Charlie")
이 예제에서 greet_friends()
는 얼마나 많은 인수를 받을 수 있는지 모릅니다. 이 코드를 실행하면 다음과 같은 출력이 나옵니다:
Hello, Alice!
Hello, Bob!
Hello, Charlie!
하지만 더 많은 친구들이 있었던가요? 문제없어요! 더 많은 이름을 쉽게 추가할 수 있습니다:
greet_friends("Alice", "Bob", "Charlie", "David", "Eve")
그리고 우리의 함수는 모두 인사해줄 것입니다!
*args의 작동 방식
함수 정의에서 *args
를 사용하면, 파이썬은 모든 인수를 튜플로 채웁니다. 그런 다음 함수 내에서 이 튜플을 이터레이션할 수 있습니다. 마치 아무 수의 항목을 담을 수 있는 마법의 가방이 있는 것 같아요!
임의의 인수 예제
더 실용적인 예제를 만들어보겠습니다. 예를 들어, 다양한 수의 점수에서 평균을 계산하고 싶다고 가정해봅시다:
def calculate_average(*args):
if len(args) == 0:
return 0
total = sum(args)
average = total / len(args)
return average
print(calculate_average(85, 90, 78))
print(calculate_average(92, 88, 95, 78, 80))
이 코드는 다음과 같은 출력을 낼 것입니다:
84.33333333333333
86.6
calculate_average()
함수는 얼마나 많은 점수를 처리할 수 있는지. 내장된 sum()
함수를 사용하여 합계를 계산한 후, 점수의 수로 나누어 평균을 구합니다.
필수 인수와 임의의 인수
때로는 필수 인수와 임의의 인수를 함께 사용하고 싶을 수 있습니다. 걱정하지 마세요! 파이썬이 여러분을 지원해줄 거예요. *args
와 함께 정상적인 매개변수를 혼합할 수 있습니다. *args
를 끝에 두는 것을 기억하세요:
def introduce_class(teacher, *students):
print(f"Hello, I'm {teacher}, and I'll be your teacher.")
print("Let's introduce the students:")
for student in students:
print(f"- {student}")
introduce_class("Mr. Johnson", "Alice", "Bob", "Charlie")
이 코드는 다음과 같은 출력을 낼 것입니다:
Hello, I'm Mr. Johnson, and I'll be your teacher.
Let's introduce the students:
- Alice
- Bob
- Charlie
이 예제에서 teacher
는 필수 인수이고, *students
는 얼마나 많은 학생 이름을 받을 수 있는 인수입니다.
임의의 키워드 인수 (**kwargs)
이제 한 단계 더 올려볼까요? 키워드 인수를 전달하고 싶다면 어떻게 해야 하나요? **kwargs
(키워드 인수)를 소개합니다! 이 것은 *args
와 비슷하지만, 이름付き 인수를 위한 것입니다.
간단한 예제를 살펴보겠습니다:
def print_user_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_user_info(name="Alice", age=25, city="New York")
이 코드는 다음과 같은 출력을 낼 것입니다:
name: Alice
age: 25
city: New York
이 경우, **kwargs
는 키가 인수 이름이고 값이 인수 값인 딕셔너리를 만듭니다.
여러 인수와 임의의 키워드 인수
정상적인 인수, *args
, **kwargs
를 하나의 함수에 결합할 수 있습니다. 정상적인 인수 먼저, 그 다음 *args
, 마지막으로 **kwargs
순서를 기억하세요.
다음은 이 모든 것을 결합한 예제입니다:
def student_info(school, *args, **kwargs):
print(f"School: {school}")
print("Subjects:")
for subject in args:
print(f"- {subject}")
print("Additional Information:")
for key, value in kwargs.items():
print(f"{key}: {value}")
student_info("Python High", "Math", "Science", "History", name="Alice", age=16, grade="10th")
이 코드는 다음과 같은 출력을 낼 것입니다:
School: Python High
Subjects:
- Math
- Science
- History
Additional Information:
name: Alice
age: 16
grade: 10th
메서드 요약
다음은 우리가 논의한 메서드를 요약한 표입니다:
메서드 | 문법 | 설명 |
---|---|---|
임의의 인수 | *args |
함수가 임의의 수의 위치 인수를 받을 수 있게 함 |
임의의 키워드 인수 | **kwargs |
함수가 임의의 수의 키워드 인수를 받을 수 있게 함 |
결합 사용 | def func(regular_args, *args, **kwargs) |
정상적인 인수와 두 가지 임의의 인수를 결합 |
기억해두세요, 임의의 인수의 힘은 유연성에서 비롯됩니다. 이를 통해 더 다양한 상황에 적응할 수 있는 더 유연한 함수를 만들 수 있습니다.
이 마법의 여정을 마칠 때, 여러분이 *args
와 **kwargs
를 사용하는 데 더 자신감을 가지고 있기를 바랍니다. 여러분의 파이썬 스크립트에서 이러한 강력한 도구를 사용해 보세요. *args
와 **kwargs
를 여러분의 함수에 사용하는 연습을 통해, 숙련된 마법사처럼 파이썬 코드를 작성할 수 있을 거예요. 코딩을 즐겁게, 여러분의 함수가 항상 유연하길 바랍니다!
Credits: Image by storyset