코딩 스쿨에 오신것을 환영합니다~~

질의응답 게시판

 
introduction to 파이썬 질문
최 * 원 | 2021-04-24



안녕하세요! 앞서 질문드린 부분 빠른 답변 감사합니다!


현재 C5 186~187페이지 예제를 풀어보는 중인데

둘 다 while문으로 푼다고 가정했을 때 



color = ["빨간색", "파란색", "노란색", "검정색", "초록색"]

n = len(color)
while n > 0:
    n = n - 1
    print("나는 %s을 좋아한다." % color[n])




animals = ["코끼리", "호랑이", "사슴", "펭귄", "여우"]

i = 0
while i < len(animals):
    print(animals[i])
    i = i + 1


변수값 증가/감소 조건의 위치에 대해서 설명해주실 수 있을까요?
앞서 다른 문제들 풀면서도 잘 이해를 못했는데 
왜 위 문제의 경우에는 print 위에 n = n -1이 와야 오류가 나지 않고 
하단 문제는 print 밑에 i = i + 1이 와야 오류가 나지 않는건가요?
두 경우를 어떻게 구분을 해서 사용해야 하나요?

감사합니다!







  • 관 * 자
  • 2021-04-24 (21:03)
첫번째 while문에서는 n이 5의 값을 가집니다.

인덱스는 0~4의 값을 가져야 하기 때문에 
마지막 요소을 "초록색"을 접근하기 위해서는 n이 4가 되어야 합니다.

따라서 n = n-1은 print() 함수 앞에 와야 합니다. 그래야 print() 함수에서 사용되는 color[n]에서 첫번째 n의 값이 4가 됩니다.

두번째 while문에서는 i는 0부터 시작하니 i=i+1은 print() 함수 뒤에 와야 합니다. 만약 앞에 오면 i는 1부터 시작하니 두 번째 원소부터 시작되기 때문입니다.

이해가 되시는지요?