def profile(name, age, lang1, lang2, lang3, lang4, lang5): print("이름 : {0}\t나이 : {1}".format(name, age), end=" ") # , end=" " -> 함수가 끝나고 출력시 줄바꿈을 하고 싶지 않을 때 사용 print(lang1, lang2, lang3, lang4, lang5) profile("유재석", 20, "Python", "Java", "C", "C++", "C#") profile("김태호", 25, "Kotlin", "Swift", "", "", "") # 출력값 : # 유재석 20 Python Java C C++ C# # 김태호 25 Kotlin Swift

문제점 1 : 이후 작성에서도 사용 언어가 5개 미만인 경우 계속 "" 변수에 넣어주어야 한다.

문제점 2 : 유재석이 사용할 수 있는 언어가 1개 늘어날 경우, 함수 자체를 바꿔야한다.

해결방법 : 가변인자 사용


def profile(name, age, *language): print("이름 : {0}\t나이 : {1}".format(name, age), end=" ") for lang in language: print(lang, end=" ") print() # 줄바꿈을 위한 코드 profile("유재석", 20, "Python", "Java", "C", "C++", "C#", "JavaScript") profile("김태호", 25, "Kotlin", "Swift") # 출력값 : # 이름 : 유재석 나이 : 20 Python Java C C++ C# JavaScript # 이름 : 김태호 나이 : 25 Kotlin Swift