-1
저는 파이썬 스크립트를 테스트 중이며, 여기서는 2 개의 변수의 이전 값을 지속적으로 저장 한 다음 함수를 통해 반환해야합니다. 이것을 위해 나는 fibonacci 시리즈를 예로 들었다 :Python의 동적 변수 할당
def fibonacci(n):
a=0;b=1;cnt=0;
while True:
if (cnt > n):
return;
yield a;
c=b;b=a+b;a=c;
cnt +=1;
fib=fibonacci(5)
for x in fib:
print(x,end=" ")
모든 것이 여기에 예상대로 완벽하게 작동하며 예상대로 출력된다. 그러나 나는 다른 방법으로 그것을 쓰려고 시도했다. 대신에 여분의 변수 "c"를 사용하는 대신 효율적으로 오래된 값의 교환을 할 수 있었고, 사실상 여기에 부딪혔다.) 대신 라인의
: 사용
c=b;b=a+b;a=c;
: 그래서 자세한 설명이 이해 될 것이다
a,b=b,a+b
합니다.
'c = b; b = a + b; a = c;'한 줄에 명령을 넣지 마십시오. 사람들에게 코드를 읽을 수 없게 만듭니다. – furas
이것은 파이썬이 [unpacking] (https://www.safaribooksonline.com/library/view/python-cookbook-3rd/9781449357337/ch01s01.html)을 지원하기 때문에 가능합니다. –
쉼표',''tuple'을 만드는 데 사용됩니다 - 그래서 여러분은 값을 튜플'b, a + b'에 "팩"하고 나중에이 튜플을 변수'a, b'에 "풀어" – furas