파이썬/ 이 식을 제가 이해가 안되는거 같습니다 어떤 부분이 틀렸는지 꼬집어주시면 감사하겠습니다.

조회수 434회
def func(x=2):
        if x<=0:
           return
        print(x)
for x in range(3):
  func()
2
2
2

제가 실행했을때 이런 값이 나오는데 뭔가 제가 잘못 이해를 하고 있는것같아서 고수님들의 답변을 들어보고싶어서 질문을 올렸습니다. 일단 제가 이해한 식대로라면

  1. func(x=2)라고 정의한다
  2. 만약 x가 0보다 작거나 같으면 리턴한다
  3. 같지않으면 X를 출력한다
  4. for문에서 x는 0,1,2의 리스트를 가진다
  5. func()을 콜한다
  6. 함수에 0을 대입한다 0은 0보다 작거나 같기때문에 리턴한다.그리고 x는0을 대입했기때문에 0를 출력한다
  7. 함수에 1을 대입한다 1은 0보다 크기때문에 리턴하지않고 프린트한다x에 1대입됬으므로 위식과 같이 1이출력된다.
  8. 함수에 2를 대입한다 2는 0보다 크기때문에 리턴하지않고 프린트한다 x에 2가 대입됬으니 위식과같이 2가 출력된다.

    1. 결론적으로 저는 0 ,1, 2 가 나올줄 알았는데 2,2,2가 나와서 제가 무엇을 놓쳤는지 잘모르겠습니다. 처음 정의했을때 x=2이기 때문에 다른 매게변수가 들어가지 못하는건가요? ..아니면 x는2로 정의되었으니 print(x)는 무조건 2인걸까요..
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)