본문 바로가기
프로그래밍/파이썬 Python

[파이썬 문법] 3-1. 함수호출(위치,키워드) [초보용] - 질문으로 공부하는

by it-수다쟁이증후군 2023. 4. 3.

오늘.ssam)
지난 시간에는 3.함수의기초 에 대해서 알아보았는데요. 함수를 호출할 때 인자의 값이 있을수도,없을 수도 있다고 이야기 했습니다. 하지만 없는 경우보다는 있는 경우가 훨씬 더 많습니다. 그런 만큼 이번 포스트는 중요한데요. 다만, 다양한 자료형을 배우지 못했기에 오늘은 기초적인 개념만 이해하는 수준에서 이야기 해보겟습니다.

Q1.나)
함수 호출과 인자 전달하는 방법에 대해서 설명해주세요.

"함수의호출-인자전달방식" 문장을 타이포그래피로 만든 썸네일
시작합니다.

A1.ssam)
함수를 호출할 때 함수에 값을 전달하는 방법으로는 위치 인자(positional argument)와 키워드 인자(keyword argument)가 있습니다.

  • 위치 인자: 인자의 위치에 따라 값을 전달하는 방법입니다.
  • 키워드 인자: 인자 이름과 값을 함께 전달하는 방법입니다.

예시를 들어보면, 다음과 같은 함수가 있다고 가정해봅시다.

def greet(name, message):
print(f"{name}, {message}")

이 함수에는 namemessage라는 두 개의 매개변수가 있습니다. 이 함수를 호출할 때, 위치 인자를 사용하면 다음과 같이 전달할 수 있습니다.

greet("Alice", "Hello")

위치 인자를 사용하는 경우, 전달되는 값의 순서가 매개변수의 순서와 일치해야 합니다. 또한, 키워드 인자를 사용하는 경우, 다음과 같이 전달할 수 있습니다.

greet(name="Bob", message="Hi")

키워드 인자를 사용하는 경우, 매개변수의 순서와 관계없이 매개변수 이름과 함께 값을 전달할 수 있습니다.

Q2.나)
함수호출과 인자에 대해서 예시를 더 들어 주세요.

A2.ssam)
아래는 1번) 위치인자 , 2) 키워드인자 , 3) 위치-키워드 인자혼용 방식입니다.

#1)위치 인자(Positional arguments) 방식

def calculate(num1, num2):
    add_result = num1 + num2
    return add_result

result = calculate(10, 5)

#출력 결과 : 15
#2)키워드 인자(Keyword arguments) 방식

def print_info(name, age, gender):
    print("Name:", name)
    print("Age:", age)
    print("Gender:", gender)

print_info(name="Alice", age=25, gender="female")

#출력 결과 :
#  Name: Alice
#  Age: 25
#  Gender: female
#3)위치-키워드인자 혼용 방식

def calculate(num1, num2):
    add_result = num1 + num2
    return add_result

result = calculate(10, num2=5)

#출력 결과 : 15

Q3.나)
최종 정리할까요?

A3.ssam)
네, 최종적으로 정리하면 아래와 같습니다.

  • 함수호출에서 인자(argument)란 함수에 입력으로 전달되는 값을 의미합니다.
  • 함수를 호출할 때 인자를 전달할 수 있습니다.
  • 함수에서 인자를 전달받는 방법으로는 위치 인자(positional argument)와 키워드 인자(keyword argument)가 있습니다.
  • 위치 인자는 인자의 위치에 따라 함수 내에서 변수에 할당됩니다.
  • 키워드 인자는 인자를 매개변수명과 함께 전달하여 함수 내에서 변수에 할당됩니다.
  • 위치인자와 키워드인자를 혼용해서 함수 호출의 자유도가 올라갑니다.

Last.ssam)
마지막으로, 선언할때 매개변수, 호출할때 인자 라고 지칭하지만, 평상시에는 그냥 퉁쳐서 인자라고 합니다. 그럴때가 있자나요. "개떡같이 말해도 찰떡같이 알아 듣는다." 그렇다구요.^^~ 아래는 오늘 질문 리스트입니다.

  1. Q)함수 호출과 인자 전달하는 방법에 대해서 설명해주세요.
  2. Q)함수호출과 인자에 대해서 예시를 더 들어 주세요.
  3. Q)최종 정리할까요?

댓글