파이썬 공부 하다가 모르겠는거 알려주실 수 있나요?
파이썬 공부중인데 아무리 봐도 모르겠어서요, 차근 차근 공부 하고 있지만 어렵네요ㅠㅠtemp = x의 위치에 따라 print(y)의 값이 달라지는데 그 이유를 알고 싶어요! 자세하게 설명 부탁드려요!!!
파이썬은 컴파일러 언어가 아니기 때문에 쉽게 말해 동시 통역을 한다고 생각하면 쉽습니다.
1. temp = x : Temp 의 정의, 정의된 내용이 없기 때문에 빈 값 들어감
2. x = 10 : X 정의
3. y = 20 : Y 정의
4. x = y , y 값인 20이 x에 정의 됨
5. y = temp , 결과적으로 X가 최종적으로 정의된 x=y (4번에 정의 된 20 값) 이 temp = x 에 들어감 결과적으로 y 도 20 이 됨
두 번째 예제 같은 경우에는 사전에 모든 변수가 정의 되어 있기 때문에 따로 설명은 필요 없을 것 같네요
소스 코드를 한줄씩 천천히 생각해보시면 이해가 쉬울 듯 싶습니다.
올려주신 코드를 천천히 해석하며 보면 이렇게 될 것으로 보입니다.
x = 10
y = 20 // 변수 x,y에 10, 20이라는 값을 저장
x, y = y, x // 각 변수의 값을 서로 교차하여 저장 (y값은 x로 x값은 y로)
print(x) // x값 출력 출력값 20
temp = x // 1. 위의 코드와 별개로 각각 독립된 파일로 나뉜 소스 코드라면 temp 변수에 x값 저장
// 2. 위의 코드와 따로 분리된 것이 아닌 한 파일 내에 소스 코드가 이어져 있다면 위에서 쓰인 변수값 재이용
// 사진을 보면 한 파일 내의 소스코드로 추정되므로 위의 변수값 재이용이 맞을 듯 싶습니다.
x = 10
y = 20 // 변수 x,y에 10, 20이라는 값을 저장
x = y // 변수 x에 변수 y의 값을 저장
y = temp // 위의 코드에서 이용된 temp에 저장된 값은 20, 즉 20을 y에 저장
print(y) // y값 출력 출력값 20
x = 10
y = 20 // 변수 x,y에 10, 20이라는 값을 저장
temp = x // 변수 x에 저장된 값인 10을 temp에 저장
x = y // 변수 x에 변수 y에 저장된 값인 20을 저장
y = temp // 변수 y에 변수 temp에 저장된 값인 10을 저장
print(y) // y값 출력 출력값 10
안녕하세요
temp = x의 위치에 따라 결과가 달라지는 이유는 temp에 x를 할당할 때 x의 현재 값이 다르기 때문입니다.
x = 10 y = 20 x, y = y, x print(x) # 결과 : 20 temp = x # temp = 20 x = 10 y = 20 x = y y = temp # y는 temp의 값을 가지므로 20 print(y) # 결과 : 20 x = 10 y = 20 temp = x # temp = 10, temp는 x의 값을 가지므로 10 x = y y = temp # y는 temp의 값을 가지므로 10 print(y) # 결과 : 10ln[11] 부분
temp = x에서 x의 값이 정해지지 않았으니 temp은 변수로서 기능을 하지 못합니다.
y = temp부분도 temp이 변수가 아니니 의미 없는 문장입니다.
그래서 결국
y = 20의 값이 그대로 20으로 출력 됩니다.
ln[10] 부분
x = 10temp = xtemp는 10이란 변수가 생겼고,
y = tempy는 temp의 변수를 받아서 10이란 변수가 됩니다.
x=y이 부분은 ln[11], ln[10] 둘 다 결과 값에 영향을 주지 않습니다.
쉽게 착각 할 수 있는 함정입니다. x의 값이 변했으니 위의
temp = x부분이 영향이 받아서 값이 변할거라는 착각입니다.