Python에서 함수 종료
모든 프로그램에는 약간의 실행 흐름이 있습니다. 흐름은 프로그램이 실행되는 방식에 불과합니다. return
문은 프로그램 내에서 다양한 경우에 사용될 수있는 Python의 함수를 종료하는 데 사용됩니다. 그러나 우리가이 진술을 사용하는 가장 일반적인 두 가지 방법은 다음과 같습니다.
- 함수가 종료되거나 실행 된 후 함수에서 값을 반환하려고 할 때. 그리고 나중에 프로그램에서이 값을 사용할 것입니다.
def add(a, b):
return a + b
value = add(1, 2)
print(value)
출력:
3
여기에서a+b
로 계산 된 값을 반환 한 다음value
변수 내에3
값을 저장합니다.
- 주어진 순간에 함수의 실행을 멈추고 싶을 때.
def add(a, b):
if a == 0:
return
elif b == 0:
return
else:
sum = a + b
return sum
value = add(0, 2)
print(value)
출력:
None
여기서a
또는b
의 값이0
이면 숫자 합계를 계산하지 않고 직접 반환합니다. 0
이 아니면sum
만 계산하고 반환합니다.
이제 프로그램에서이 명령문을 구현하면 프로그램에서이 명령문을 추가 한 위치에 따라 프로그램 실행이 변경됩니다. 어떻게 작동하는지 봅시다.
Python의 암시 적 반환 유형
if
문을 사용하여 작성한 함수가 있다고 가정하면 프로그램이 어떻게 작동하는지 살펴 보겠습니다.
def solution():
name = "john"
if name == "john":
print("My name ", name)
solution()
출력:
My name john
solution()
함수는 인수를 사용하지 않습니다. 그 안에name
이라는 변수가 있고 그 값이if
문을 사용하여 문자열john
과 일치하는지 확인합니다. 일치하면name
변수의 값을 인쇄 한 다음 함수를 종료합니다. 그렇지 않으면 문자열이 일치하지 않으면 아무것도하지 않고 그냥 종료합니다.
여기에서는 코드에return
문이 작성되어 있지 않기 때문에return
문이 없다고 생각할 수 있습니다. return 문은 반드시 작성해야하는 것은 아닙니다. Python 함수를 종료 할 때마다return
문을 지정하지 않은 경우에만None
값으로return
을 호출합니다. None
값은 함수가 실행을 완료했으며 아무것도 반환하지 않음을 의미합니다. 매개 변수없이return
문을 지정한 경우return None
과도 동일합니다. 함수 내에 반환 유형을 지정하지 않으면 해당 함수는return
문을 호출합니다. 파이썬에서는 암시 적 반환 유형이라고합니다.
Python의 명시 적 반환 유형
코드 내에서 직접return
문을 명시 적으로 추가 할 때마다 반환 유형을 명시 적 반환 유형이라고합니다. 함수에 의해 계산 된 값을 전달하고 나중에 사용하기 위해 변수에 저장하거나return
문을 사용하여 일부 조건에 따라 함수 실행을 중지 할 수있는 것과 같이 명시 적 반환 유형을 사용하면 많은 이점이 있습니다. 등등. Python에서 명시 적 유형의 예를 살펴 보겠습니다.
def Fibonacci(n):
if n < 0:
print("Fibo of negative num does not exist")
elif n == 0:
return 0
elif n == 1 or n == 2:
return 1
else:
return Fibonacci(n - 1) + Fibonacci(n - 2)
print(Fibonacci(0))
출력:
0
피보나치 수를 찾는 프로그램입니다. 명시적인return
문을 사용하여 코드가 어떻게 반환되는지 확인합니다. 여기서 주목해야 할 중요한 점은이 함수에 전달 된 숫자가2
또는2
보다 작은 경우 일부 값을 직접 반환하고 그 아래에 작성된 코드를 무시하고 함수를 종료한다는 것입니다. 이 함수에 전달 된 값이2
보다 큰 경우에만 기본 코드 (else
블록 내부에 있음)를 실행합니다.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn