0
>>> def square(x):
print('LINE A:', x)
x = x*x
print("LINE B:", x)
return x
>>> if __name__ == '__main__':
x = 5
print("LINE C:", x)
square(x)
print("LINE D:", x)
square(x + 1)
print("LINE E:", x)
는 생산 : 첫 번째 (상단) 함수에서반환 값을 사용하지
LINE C: 5
LINE A: 5
LINE B: 25
25
LINE D: 25
LINE A: 25
LINE B: 676
676
LINE E: 676
을, 내가 가진 매개 변수 x를 할당 : 나의 이해에서
LINE C: 5
LINE A: 5
LINE B: 25
25
LINE D: 5
LINE A: 6
LINE B: 36
36
LINE E: 5
, 그것은이 다음 반환해야합니다 더블 엑스. There, if 이름이 == '주'인 경우 : function, print ("LINE D :", x)는 이전에 호출 된 사각형 (x)에 의해 반환 된 x를 인쇄한다고 가정합니다. 그러나 웬일인지 이것이 그렇지 않은 경우, 내가 뭘 잘못 했는가? 아니면 내 이해가 잘못 되었습니까?
P. 나는 정확하게 기능을 수정하려고하지 않습니다. 나는 왜 그것이이 방법으로 작동하는지에 대한 설명을 찾고 있습니다.
대신'x = square (x)'를 써야합니다. – fenceop
나는 정확하게이 기능을 수정하려고하지 않았다. 나는 왜 그것이이 방법으로 작동하는지에 대한 설명을 찾고 있습니다. – amundi12
'square()'함수는'main()'에있는'x' 변수를 직접 조작하지 않습니다. 대신 값을 복사하고 이것을'x'라고하는 지역 변수에 할당합니다. 'x' (main)은 여러분이'square (x)'의 반환 값을 지정하지 않는 한 변경되지 않습니다. – fenceop