연습문제
1.4.1 정확히 천 개의 정수를 가진 1차원 배열 a[]
를 생성하고 a[1000]
에 접근하는 프로그램을 작성하라. 프로그램을 실행하면 어떻게 되나?
1.4.2 길이가 n
이고 1차원 배열로 표현된 두 개의 벡터가 있을 때, 이 둘 간의 유클리드 거리를 구하는 코드 부분을 작성하라(유클리드 거리는 해당 요소 간의 차를 제곱한 값을 모두 더한 후 제곱근을 구한 것이다).
1.4.3 실수의 1차원 배열에 들어 있는 요소들을 역순으로 바꾸는 코드 조각을 작성하라. 결과를 저장하기 위한 별도의 배열은 생성하지 마라.
힌트: 이 책의 앞에 나왔던 두 값을 교환하는 코드를 활용하라.
1.4.4 다음 코드 조각에는 어떤 문제가 있는가?
a = [] for i in range(10): a[i] = i * i
정답: 최초의 a[]
는 빈 배열이며, 이후 아무런 요소도 배열에 추가되지 않았다. 따라서 a[0]
, a[1]
등은 존재하지 않는다. 실행 시 할당문에서 이런 요소에 접근하려 시도하면 IndexError
예외가 발생한다.