Python 함수의 기본 사항

완료됨

함수는 Python의 프로그래밍 기본 사항을 배운 후의 다음 단계입니다. 가장 간단한 형식의 함수는 항상 값(또는 여러 값)을 반환하는 코드를 포함합니다. 경우에 따라 함수에는 선택적이거나 필요한 입력도 있습니다.

프로그램의 다른 부분을 복제하는 코드를 작성하기 시작하면 코드를 함수로 추출할 수 있는 완벽한 기회가 됩니다. 함수를 통해 일반적인 코드를 공유하는 것이 유용하지만 일부를 더 작고 읽기 쉬운 함수로 추출하여 코드 크기를 제한할 수도 있습니다.

더 작은 함수를 사용하여 중복과 큰 함수를 방지하는 프로그램은 읽고 유지 관리하기가 더 쉽습니다. 또한 제대로 작동하지 않을 때 디버그하기가 더 쉽습니다.

함수 입력에 대한 몇 가지 규칙은 함수가 제공하는 모든 기능을 완전히 활용하는 데 중요합니다.

중요

어떤 함수가 사용되는지 설명하기 위해 입력이라는 용어를 사용하고 있지만 이러한 요소를 일반적으로 인수 또는 매개 변수라고 합니다. 이 모듈에서는 일관성을 위해 입력을 인수로 참조합니다.

인수가 없는 함수

함수를 만들려면 def 키워드 뒤에 이름, 괄호, 함수 코드가 포함된 본문을 차례로 사용합니다.

def rocket_parts():
    print("payload, propellant, structure")

이 경우 함수 이름은 rocket_parts입니다. 이름 뒤에는 인수가 필요하지 않음을 나타내는 빈 괄호가 옵니다. 마지막은 네 개의 공백으로 들여쓰기된 코드입니다. 함수를 사용하려면 괄호를 사용하여 해당 이름으로 호출해야 합니다.

rocket_parts()
payload, propellant, structure

rocket_parts() 함수는 인수를 사용하지 않고 문을 출력합니다. 함수가 반환하는 값을 사용해야 하는 경우 함수 출력을 변수에 할당할 수 있습니다.

output = rocket_parts()
payload, propellant, structure
output is None
True

output 변수의 값이 None인 것이 놀라울 수 있습니다. 이는 rocket_parts() 함수가 값을 명시적으로 반환하지 않았기 때문입니다. Python에서는 함수가 명시적으로 값을 반환하지 않으면 암시적으로 None을 반환합니다. 문자열을 출력하는 대신 반환하도록 함수를 업데이트하면 output 변수의 값이 달라집니다.

def rocket_parts():
    return "payload, propellant, structure"
output = rocket_parts()
output
payload, propellant, structure

함수 값을 사용해야 하는 경우 해당 함수는 명시적으로 반환되어야 합니다. 그렇지 않으면 None이 반환됩니다.

참고

항상 함수의 반환을 할당할 필요는 없습니다. 함수가 값(또는 여러 값)을 명시적으로 반환하지 않는 대부분의 경우 반환되는 암시적인 None을 할당하거나 사용할 필요가 없음을 의미합니다.

필수/선택적 인수

Python에는 여러 기본 제공 함수에 인수가 필요합니다. 일부 기본 제공 함수는 인수를 선택적으로 만듭니다. 기본 제공 함수는 즉시 사용할 수 있으므로 명시적으로 가져올 필요가 없습니다.

인수가 필요한 기본 제공 함수의 예는 any()입니다. 이 함수는 반복 가능한 개체(예: 목록)를 사용하고 반복 가능한 개체의 항목이 True인 경우 True를 반환합니다. 그 외의 경우 False를 반환합니다.

any([True, False, False])
True
any([False, False, False])
False

인수 없이 any()를 호출하면 유용한 예외가 발생합니다. 오류 메시지는 하나 이상의 인수가 필요하다는 것을 설명합니다.

 any()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: any() takes exactly one argument (0 given)

str()이라는 다른 기본 제공 함수를 사용하여 일부 함수에서 선택적 인수를 사용할 수 있는지 확인할 수 있습니다. 이 함수는 인수에서 문자열을 만듭니다. 인수가 전달되지 않으면 빈 문자열을 반환합니다.

str()
''
str(15)
'15'