문제는 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씩 감소하게 되므로 더욱 말이 안되는 듯 한데...
파이썬에서 어떤식으로 저런 결과가 나오는지 잘 모르겠어서 질문드립니다...
안녕하세요 길벗수험서 운영팀입니다.
교재 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의 결과를 가리킵니다.)
행복한 하루되세요 :)