파이썬 함수 질문할께요 plus(a) 를 반복하여 a 값을 증가시키기.

조회수 774회
count=0

def plus(a):

    a=a+1
    print(a)

for i in range(3):

    plus(count)

이렇게 실행하면 1,1,1이 뜨는데

1,2,3 이되게 하려면 어떻게 해야하나요?

1 답변

  • 1만 3번 나오느냐 하면...

    count=0
    
    def plus(a):   # <-- (2) plus(0) 실행됨
        a=a+1      # --> (3) plus() 안의 변수 a만 바뀌고 있고 count 는 변화 없음
        print(a)   # --> (4) 1 출력됨
    
    plus(count)    # --> (1) 이 시점에서 count = 0
    plus(count)    # --> (5) 이 시점에서 count는 변한 적이 없으므로 count = 0, 1 출력됨
    plus(count)    # --> (6) 이 시점에서도 count는 변한 적이 없으므로 (후략)
    

    전역변수 count를 이용해서 원하시는 작업을 하자면...

    def plus(lastCount):         # 이 함수가 하는 일은:
        nowCount = lastCount + 1 # 숫자를 넣으면 거기에 +1 해서
        print(nowCount)          # 그걸 출력하고
        return nowCount          # 방금 출력한 그 숫자를 반환한다.
    
    count = 0                    # 이제 특정 변수의 초기값을 지정하고
    for i in range(3):           # 루프를 돌면
        count = plus(count)      # 함수는 그 값을 +1 한 값으로 변경하며 반복 실행된다.
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)