파이썬에 자료형은 크게
정수, 소수(부동소수점 or float) , bool , 문자열, 리스트, 튜플, 딕셔너리... 이 정도가 대표적 입니다.
정수, 소수, bool , 문자열 은 아주 많이 쓰이지만 따로 차후 설명 하기로 하고,
그 외에 알고리즘에 활용되는 가장 중요한 자료형으로는 리스트가 있습니다.
a=1
위의 문장은 a에 1을 저장 한다는 뜻 입니다.
그렇다면 a에 여러개의 숫자를 한번에 저장 하고 싶다면 어떻게 할까요?
다음과 같습니다.
a = [1,2,3,4,5]
사각 괄호를 이용하여 자료들을 감쌈으로서 이 자료형은 리스트 라는 것을 표시 합니다.
여기서 한번
print a[0]
print a[1]
print a[2]
print a[3] ....
을 차례대로 입력 해 실행 해 보면 결과 값은
1
2
3
4....
이렇게 나오는 것을 알수 있습니다.
이걸 활용해 CNC 의 스핀들이 이동할 위치를 지정 해 줘 보겠습니다.
x = [1, 4, 6, 4, 6]
y= [2,-1, 0, 5, 3]
x와 y 에 리스트 형 자료가 저장 되었습니다.
이제 moveabs 를 활용하여 스핀들을 움직여 보겠습니다.
moveabs( x[0] , y[0] ,0)
이렇게 한뒤 실행 하면 스핀들의 좌표는 어떻게 될까요?
위에서 a[0] 이 a의 첫번째 값인 1을 지시 했던 것 처럼
x[0] 은 x의 첫번째 값인 1을, y[0] 은 y의 첫번째 값인 2 를 지시 하게 될 것 입니다.
그걸 고려해 위의 moveabs( x[0] , y[0] ,0 ) 를 다시 써 본다면
moveabs(1,2) 와 같은 뜻이 될 것이고 스핀들의 최종 목적지는 1,2,0 이 될 것 입니다.
moveabs( x[0] , y[0] ,0)
moveabs( x[1] , y[1] ,0)
moveabs( x[2] , y[2] ,0)
moveabs( x[3] , y[3] ,0)
moveabs( x[4] , y[4] ,0)
이건 어떻게 될까요?
스핀들은 차례대로
1,2,0
3,-1,0,
6,0,0
4,5,0
6,3,0
의 순서로 이동 하게 될 것 입니다.
P.S : 리스트는 반복문과 만났을때 진가를 발휘 합니다.
예제 1)
다음 리스트형 자료를 보고 묻는 것에 해당 하는 값을 찾으세요.
a = [2,2,9,8,7,100,300,4,5,6]
a[0] = ?
a[5] = ?
a[7] = ?
예제 2)
다음 리스트 자료형을 보고 스핀들의 최종 좌표를 맞춰 보세요.
단, 시작 위치는 0,0,0 으로 간주 합니다.
x = [5,6,7,3,2,5,3,2,2]
y= [-1,6,3,1,3,2,0]
z = [0,2,4,7,8]
moveabs(x[0] , y[0] , z[0])
move(x[5] , y[4] , z[4])
moveabs( x[8] , y[0] , z[3])
move( z[0] , z[1] , z[2])
mvoeabs(x[2] , y[1] , y[0])
예제3 )
x = [1,2,3,4,5]
y = [10,9,8,7,6]
z= [ ? , ? , ? , ? , ?]
z에 적절한 값을 체워서
1,10,0
2,9,-1
3,8,-2
4,7,-3
5,6,-4
로 이동 하도록 완성하고
moveabs 를 이용해서 실제 동작 하도록 해 보세요
예제 4)
최초 좌표는 0,0,0 입니다.
moveabs 가 아닌 move 를 이용하여 위와 동일한 순서의 좌표로 이동 하도록
프로그램을 작성 해 보세요.(리스트 활용)