728x90
반응형

프로그램에는 자료형이라는 것이 있습니다. 숫자, 문자열 등 자료의 형태로 사용하는 것을 이야기합니다. 이것은 프로그램의 기본이자 핵심입니다. 자료형을 알지 못하면 프로그램을 짤 수 없으며, 각 언어마다 비슷하지만 조금씩 다른 방식으로 연산을 합니다. 이러한 자료형에 대해 알아보겠습니다.

 

리스트 자료형

리스트 만들기

리스트는 앞에서 배운 숫자형, 문자형 등의 자료형을 모아서 간단하게 표현할 수 있습니다. 만드는 방법은 아래와 같습니다.

리스트명 = [요소1, 요소2, 요소3,...]

리스트는 비어있는 리스트([])가 있을수 있고, 숫자를 요소값으로 혹은 문자열을 요소값으로 가질수 있습니다. 그리고 숫자와 문자열을 함께 가질 수도 있으며 요소값에 리스트가 들어갈 수도 있습니다.

 

리스트의 인덱싱과 슬라이싱

리스트도 문자열과 같이 인덱싱과 슬라이싱이 가능합니다. 첫번째 요소의 시작은 0부터 시작한다는 것을 알고있으면 이해하기 쉽습니다.

[코드]

a = [1, 2, 3, 4, 5]
print(a)
print("0번째:",a[0])
print("-1번째:",a[-1])

a = [1, 2, 3, 4, 5, ['a','b','c']]
print(a)
print("0번째:",a[0])
print("-1번째:",a[-1])
print("5번째 요소의 1번째:",a[5][1])

[출력]

또한, 슬라이싱도 문자열과 비슷하게 적용이 가능합니다.

[코드]

a = [1, 2, 3, 4, 5]
print(a)
print("0~1번째:",a[0:2])
print("2번까지:",a[:2])
print("2번째부터:",a[2:])

[출력]

리스트의 연산 그리고 수정과 삭제

리스트도 문자열과 같이 +, * 기호를 사용하여 더하거나 반복할 수 있습니다. 그리고 리스트의 값은 수정과 삭제가 가능합니다.

[코드]

# 리스트 연산
a = [1, 2, 3, 4, 5]
b = [6, 7, 8]
print(a+b)
print(a*3)

print("a+b 리스트의 길이:",len(a+b))

# 리스트 수정
a[2] = 10
print("수정후:",a)
# 리스트 삭제
del a[1]
print("a[1]삭제후:",a)
del b[1:]
print("b[1:]삭제후:",b)

[출력]

 

리스트 함수

문자열과 마찬가지로 리스트 자료형에도 리스트 관련 함수를 사용할 수 있습니다. 유용한 몇가지의 함수를 사용해 보도록 하겠습니다.

[코드]

a = [1, 2, 3]
print("a:",a)
print("2의 개수:",a.count(2))
print("추가전:",a)
a.append(10)
print("추가후:",a)
a.insert(1,55)
print("1위치에 55 삽입후:",a)
a.insert(3,-1)
print("3위치에 -1 삽입후:",a)
print()
print("a의 1위치는:",a.index(1)) # index() 함수에서 찾는 값이 없으면 오류발생
print()
b = [10, 8, 3, 6, 1]
print("b:",b)
b.sort()
print("정렬후:",b)
b.reverse()
print("역정렬후:",b)
print()
b.append(3)
print("b:",b)
b.remove(3)
print("3 삭제후:",b) # 첫번째로 나오는 3만 삭제됨

print()
print("a:",a)
print("a배열에서 마지막 요소를 꺼냄:",a.pop())
print("pop이후 a:",a)
print("a배열에서 1 요소를 꺼냄:",a.pop(1))
print("pop이후 a:",a)

print()
a.extend(b)
print("확장:",a)

[출력]

728x90
반응형
728x90
반응형

HorizontalList를 이용하여 화면을 하나 만들어 보았다.

소스

결과


위처럼 만들면 스크롤바가 눈에 거슬린다. 아니 차라리 없는편이 더 나을지도 모르겠다. HorizontalList을 어떻게 적용하느냐의 문제겠지만, 일단 지저분에 보이는것은 사실.

그래서 어떻게 만들면 보기좋게 만들까 고민을 하다가 버튼을 이용해서 스크롤의 기능을 대신하면 어떨까 라는 생각을 하게되었다.

일단 결과먼저..


보기에도 훨씬 깔끔하고 기존 스크롤보다 사용하기도 편해졌다. (물론 개인적인 생각...)
마우스 오버와 마우스 아웃 이벤트를 사용하였고, 여기에 Timer 이벤트로 지속적으로 마우스 오버이벤트를 발생 시켰다.

소스


간단하게 요약하자면, 마우스가 해당 버튼으로 이동시 마우스 오버 이벤트를 발생하고, 마우스 오버 이벤트에서는 Timer 이벤트를 동작시켜 scrollNextFunction, scrollPreviousFunction 를 호출한다. 호출된 각각의 함수에서는 horizontalListdataProvider 갯수안에서만 움직이도록 코딩해주었다.

위 소스의 전체는 아래에...

소스를 가져가실땐, 댓글을 달아주세요..
728x90
반응형

+ Recent posts