파이썬 함수

대부분의 응용 프로그램은 작성된 프로그래밍 언어에 관계없이 함수라고 하는 더 작은 블록으로 분할되며 Python도 다르지 않습니다.

그럼 함수를 정의하는 것부터 시작하겠습니다.

# define a basic function
def func1():
    print("I am a function")

func1()
print(func1())
print(func1)


산출:

I am a function
I am a function
None
<function func1 at 0x0000025C054DBF70>


따라서 함수는 def 키워드로 정의됩니다. 콜론은 기능 범위 블록의 시작을 나타냅니다.

여기서 주의해야 할 몇 가지 사항이 있습니다. 경우에 따라 다른 프로그래밍 언어에서 이 콜론은 Java 또는 C에서 범위를 나타내기 위해 중괄호로 대체됩니다. 그것은 파이썬이 작동하는 방식이 아닙니다. Python은 콜론을 사용하고 다음 줄을 들여씁니다. 들여쓰기를 할 공백의 수는 사용자에게 달려 있습니다.

결과에서 I am a function 가 인쇄된 다음 동일한 문자열 뒤에 단어 None 가 표시되고 마지막으로 이 문자열 0x0000025C054DBF70 이 인쇄된 것을 볼 수 있습니다. 따라서 첫 번째 경우에는 함수가 직접 호출되어 함수의 내용을 실행하여 print 문이 문자열을 인쇄하도록 합니다. 두 번째 경우에도 함수가 인쇄 함수 내부에서 호출되므로 첫 번째 경우와 출력은 같지만 외부 print 문이 실행되고 함수가 값을 반환하지 않기 때문에 Python은 다음을 평가합니다. 반환 값을 없음의 Python 상수로 만든 다음 해당 문자열 표현을 인쇄합니다. 마지막 경우에는 함수를 호출하는 작은 괄호를 포함하지 않기 때문에 함수 자체가 전혀 실행되지 않습니다. 우리는 이 문자열0x0000025C054DBF70로 평가되는 함수 정의 자체의 값을 출력하고 있습니다. 이것은 함수 자체가 Python 코드의 다른 부분으로 전달할 수 있는 객체임을 보여줍니다.

인수가 있는 함수



# function that takes arguments
def func2(arg1, arg2):
    print(arg1, arg2)

# function that returns a value
def cube(x):
    return x * x * x

func2(10, 20)
print(func2(10, 20))
print(cube(3))

산출:

10 20
10 20
None
27


첫 번째 줄에서 10과 20이 사이에 공백으로 인쇄되는 것을 볼 수 있습니다. 첫 번째 결과와 비슷하고 두 번째 줄에서는 값이 없음으로 다시 인쇄되는 10과 20이 있습니다. func2에서 반환 값이 없기 때문에 다시 발생합니다. 그리고 큐브 함수의 경우 3의 큐브를 인쇄할 때 값 27을 얻습니다. 따라서 이 경우 함수는 값을 반환하고 그것이 인쇄되는 것입니다.

인수에 대한 기본값이 있는 함수




# function with default value for an argument
def power(num, x = 1):
    result = 1
    for i in range(x):
        result *= num   #result*=num is same as result=result*num
    return result

print(power(2))
print(power(2, 3))
print(power(x = 3, num = 2))


산출:

2
8
8


함수 거듭제곱은 기본적으로 숫자를 가져와서 주어진 거듭제곱으로 올립니다. 그리고 함수 정의에서 x는 1과 같으므로 해당 인수에 대한 기본값을 할당합니다.

여기print(power(2)) 함수 power를 호출하고 있지만 x에 대한 값을 제공하지 않으므로 x는 기본적으로 1로 설정됩니다.

그리고 여기print(power(x = 3, num = 2)) 인수가 호출되는 순서를 반대로 하고 있습니다. 따라서 Python을 사용하면 이름이 지정된 매개변수와 값을 사용하여 함수를 호출할 수 있으며, 이렇게 하면 Python 인터프리터가 값을 제공할 인수를 파악합니다. 값과 함께 이름을 제공하기만 하면 특정 순서로 인수를 사용하여 함수를 호출할 필요가 없습니다.

가변 개수의 인수가 있는 함수



#function with variable number of arguments
def multi_add(*args):
    result = 0
    for x in args:
        result += x
    return result

print(multi_add(1, 2, 3))
print(multi_add(1, 2, 3, 10))
print(multi_add(1, 2, 3, 10, 16))

산출:

6
16
32


여기서 내가 한 것은 multi_add라는 함수를 정의하는 것이며 별표 문자는 다양한 수의 인수를 전달할 수 있음을 의미합니다. 그런 다음 이 함수는 각 인수를 반복하여 모두 누적 합계에 더한 다음 반환됩니다. 가변 인수 목록을 형식 인수 세트와 결합할 수 있지만 가변 인수 목록은 항상 마지막 매개변수여야 한다는 점을 명심하십시오.

좋은 웹페이지 즐겨찾기