오늘 파이썬을 배우면서 아직 처음이라 그런가 좀 쉽다고 생각했었는데,
바로 어려운게 나와서 이해하는데 진땀을 뺀 것 같다.
def print_two(word1, word2):
print(word1)
print(word2)
def print_and_return(word1, word2, word3):
print_two(word3, word2)
return word1
print_two('A', print_and_return('B', 'C', 'D'))
D
C
A
B
이 순서대로 나오는 것이 이해가 되지 않았는데, 민호님과 퍼실님이 설명을 잘 해주셔서 완벽히 이해하진 못하더라도 조금은 이해가 된거 같다.
먼저 print_and_return('B','C','D')논리에 위에 써있는 print_two(word3,word2)
의 순서로 인해 D,C가 나온 것이고 여기서 return'B'는 잠시 밖에 놔두고
다시 맨 위로 올라가 print_two(word1,word2)의 영향으로 D,C,A이렇게 나열되고 마지막에 B가 붙어서 DCAB 이렇게 된거같다. (이게 맞는건가?)
마지막으로 또 하나 기억에 남는 건 if와 elif다.
이거는 써보면서 이해를 해 나가도 차이점을 잘 몰랐었는데 재협님이 설명을 깔끔하게 잘 해주신거 같다.
number = 10
if (number == 10):
number += 1
elif (number == 11):
number += 1
print(number)
=11
number = 10
if (number == 10):
number += 1
if (number == 11):
number += 1
print(number)
=12
이렇게 차이점이 있는데, 먼저 첫번째 코드의 elif를 씀으로 처음 10의 값에 맞는 if의 논리만
사용되서 값이 11이 나온것이고,
두번째 코드는 두개 다 if문을 사용해서 10에 1을 더한 11값이 나오니 밑에 if 11값에 맞춰 또 1을 더해 12가 나온거 같다.
이렇게 이해하는게 맞나 싶다..
어쨋든 아직은 처음이라서 모르는게 많이 있었는데 나중에 다시 한번 봐야겠다.