번역

다음은 제공된 텍스트를 한국어로 번역한 것입니다.

Python - Arbitrary Arguments

파이썬 - 임의의 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