책 내용 질문하기
실기 파이썬 문제 자료 중 3번 문제 질문이 있습니다
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
0
조회수
261
작성일
2020-09-21
작성자
탈퇴*원
첨부파일

문제는 2회 실기 대비 때 올라온 파이썬 문제 자료이며

3번 문제는 다음과 같습니다

 

def func(a);

  b = a * -1

  lst = list(range(a, b, -2))

  r = 0

  for i in lst;

   r+=1

 return r

result = func(5)

print(result)

 

여기서 해설의 1,2,3번 까지는 이해가 가나, 4번에서 lst를 만들때 a부터 b까지 즉, 5부터 -5까지 -2씩 감소하며 배열을 만드는 것으로 이해했는데

해설에서는 a에서 시작하여 b+1(-4)까지 -2씩 감소하는 숫자를 저장한 lst를 만든다고 적혀있습니다.

 

그래서 저는 lst = [5, 3, 1, -1, -3, -5]라고 생각했지만, 해설에서는 lst = [5, 3, 1, -1, -3]이라고 되어 있고

해설의 4번에 따르면 5부터 -9까지 -2씩 감소하게 되므로 더욱 말이 안되는 듯 한데...

 

파이썬에서 어떤식으로 저런 결과가 나오는지 잘 모르겠어서 질문드립니다...

답변
2020-09-22 10:05:12

안녕하세요 길벗수험서 운영팀입니다.

 

교재 114쪽의 Range를 참고해주세요.

 

증가값이 양수인 경우 최종값-1 까지

증가값이 음수인 경우 최종값+1 까지의 값만을 가질 수 있습니다.

 

즉, range(5, -5, -2)의 경우 증가값이 음수이므로,

5 ~ -4 까지의 값만을 가질 수 있게되고, 5부터 증가값을 적용하여

5, 3, 1, -1, -3  이라는 값을 가지게 됩니다.

(해설에서 괄호의 -4는 b+1의 결과를 가리킵니다.)

 

행복한 하루되세요 :)

  • 관리자
    2020-09-22 10:05:12

    안녕하세요 길벗수험서 운영팀입니다.

     

    교재 114쪽의 Range를 참고해주세요.

     

    증가값이 양수인 경우 최종값-1 까지

    증가값이 음수인 경우 최종값+1 까지의 값만을 가질 수 있습니다.

     

    즉, range(5, -5, -2)의 경우 증가값이 음수이므로,

    5 ~ -4 까지의 값만을 가질 수 있게되고, 5부터 증가값을 적용하여

    5, 3, 1, -1, -3  이라는 값을 가지게 됩니다.

    (해설에서 괄호의 -4는 b+1의 결과를 가리킵니다.)

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.