Python return 문장은 어떻게 결과를 호출로 되돌려줍니까
프로그램이 만났던 첫 번째 리턴으로 실행되면 되돌아옵니다. (def 블록을 종료합니다.) 두 번째 리턴을 실행하지 않습니다.
두 개의 값을 반환하려면 한 줄로 작성하십시오.
def a(x,y):
if x==y:
return x,y
print a(3,3)<br><br>>>> 3,3
그러나 함수체에 return 문장이 하나만 있다는 것은 아니다. 예를 들어
def test_return(x):
if x > 0:
return x
else:
return 0
함수에 return이 없습니다. 기본 return에는 None 객체가 있습니다.귀속 함수에 return이 없는 경우:
def gcd(a,b):
if a%b==0:
return b
else:
gcd(b,a%b)
분석:else에return이 없으면 출구가 없습니다. 이 프로그램은 내부에서 실행되고 프로그램이 되돌아오는 값이 없습니다.python과 print의 차이점:
x = 1
y = 2
def add (x, y):
z = x + y
return z
print (add(x,y)
x = 1
y = 2
def add (x, y):
z = x + y
print z
print (add(x,y))
상호작용 모드에서return의 결과는 자동으로 인쇄되며, 스크립트로 단독으로 실행될 때print 함수가 필요합니다.기본적으로 return 함수를 만나면 호출자에게 되돌아오지만 try,finally 상황을 제외합니다.
def func():
try:
print 98
return 'ok' #
finally: #finally
print 98
print fun()
출력:98
98
ok
함수는 반환값으로 반환됩니다.
태그:python
def lazy_sum(*args):
def sum():
x=0
for n in args:
x=x+n
return x
return sum
lazy_sum(1,2,3,4,5,6,7,8,9) # lazy_sum , sum 。
f=lazy_sum(1,2,3,4,5,6,7,8,9)
print(type(f))
print(f()) # f() , sum ,
이것은 사실 가방을 닫는 것이다.함수 목록을 반환합니다.
def count():
fs = []
for i in range(1,4):
def f():
return i*i
fs.append(f)
return fs
f1, f2, f3 = count()
print(f1())
print(f2())
print(f3())
:
9
9
9
실행 절차:i=1, for순환을 실행하면 함수 f의 함수 주소를 되돌려줍니다. 목록 fs의 첫 번째 위치에 존재합니다.
i=2, fs 목록에서 첫 번째 요소가 가리키는 함수 중의 i는count 함수의 국부 변수이기 때문에 i도 2를 가리킨다.그리고 for 순환을 실행하면 함수 f의 함수 주소를 되돌려줍니다. 목록 fs의 두 번째 위치에 존재합니다.
i=3, 같은 이치로 fs 목록의 첫 번째와 두 번째 요소가 가리키는 함수 중의 i 변수가 3을 가리킨다.그리고 for 순환을 실행하면 함수 f의 함수 주소를 되돌려줍니다. 목록 fs의 세 번째 위치에 존재합니다.
따라서 f1()을 호출할 때 함수의 i는 3을 가리킨다.
f1():
return 3*3
f2(), f3() 결과 모두 9
패키지를 닫을 때 명심해야 할 점은 반환 함수는 순환 변수를 인용하지 않거나 다음에 변화할 변수를 인용하지 않는다는 것이다.즉, 안에 있는 함수 (이 예는 f () 이고, 외부 함수 (이 예는count ()) 의 순환 변수를 인용하지 마십시오
만약 반드시 순환 변수를 도입하려면 함수를 다시 만드는 것입니다. 이 함수의 매개 변수로 순환 변수의 현재 값을 귀속합니다. 이 순환 변수가 다음에 어떻게 바뀌든지 간에 함수 매개 변수에 귀속된 값은 변하지 않습니다.
def count():
fs=[]
for i in range(1,4):
def f(j):
def g():
return j*j
return g
fs.append(f(i))
return fs
f1,f2,f3=count()
print(f1())
print(f2())
print(f3())
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.